当前位置: 首页 > news >正文

Matlab统计字符串中共有多少种字符以及每种字符出现次数的功能实现(Matlab R2021a)

在做2023年深圳杯B题的时候,需要使用隐写技术(将特定信息嵌入信息载体且不易被察觉,可被广泛地应用于著作权保护、数据附加等领域)将《中华人民共和国著作权法》全篇10314个字符写入图片,首先我想到的是利用霍夫曼编码原理 将字符串进行压缩,这样的话,相同的隐写算法就可以保存更多的信息。所以我需要统计字符串中共有多少种字符以及每种字符出现的次数,其实更优的做法是利用中文语料库进行分词,或直接应用中文词频统计结果进行霍夫曼编码,可以极大压缩所给文档。
下面是统计字符串中共有多少种字符以及每种字符出现的次数的具体实现:

%% 实现逻辑
% 使用unique函数得到不重复的所有单一字符,求长度即为字符串中字符种类数
% 而后使用循环语句和strfind函数逐一判断每种字符在字符串中出现的次数
%% 准备工作
clc;
clear;
AllString=fileread('中华人民共和国著作权法.txt'); %读入字符串,事先存入txt文档中
%% 计算每种字符的数量
characters = unique(AllString);
CharactersNumber=length(characters);
CharactersTimes = zeros(CharactersNumber,1);
for i = 1:length(characters)CharactersTimes(i)=length(strfind(AllString,characters(i)));
end
sprintf('所给字符串一共有%s种字符,每种字符出现的次数请查看变量:CharactersTimes',num2str(CharactersNumber))

如果需要作为函数引用,输入字符串,输出字符串中字符种类数、每种字符出现次数等结果,可参考下述代码

%% 版权声明
% 版权所有 (c) 2023 课补乐科技工作室,作者KeepLearn666,微信公众号KeepLearner
% 本程序知识产权属于作者和工作室。特此免费授予任何单位或个人获得本程序和相关文件副本,不受限制地使用、复制、修改、发布本程序,
% 但不允许以任何形式(包括但不限于:以源代码形式、以二进制形式、以修改后的代码形式)向第三方出售、出租、转让本程序。
% 向外发布时应在显著位置注明来源(微信公众号KeepLearner)。
% 博客:终身学习者的家园 https://keeplearner.blog.csdn.net/
% 联系方式:
% 邮箱:345797571@qq.com
% 微信:KeepLearn666
% 微信公众号:KeepLearnerfunction [CharactersNumber,CharactersTimes]=CharactersTimesCounter(AllString)
%% 计算每种字符的数量
characters = unique(AllString);
CharactersNumber=length(characters);
CharactersTimes = zeros(CharactersNumber,1);
for i = 1:length(characters)CharactersTimes(i)=length(strfind(AllString,characters(i)));
end
end

相关文章:

Matlab统计字符串中共有多少种字符以及每种字符出现次数的功能实现(Matlab R2021a)

在做2023年深圳杯B题的时候,需要使用隐写技术(将特定信息嵌入信息载体且不易被察觉,可被广泛地应用于著作权保护、数据附加等领域)将《中华人民共和国著作权法》全篇10314个字符写入图片,首先我想到的是利用霍夫曼编码…...

HTTPS文件传输

目录 0.https概述1.单钥匙锁2.双钥匙锁 - 防篡改3.双钥匙锁 - 防泄漏4.单双钥匙锁相互配合 0.https概述 HTTPS其实就是HTTP协议加上TLS/SSL,SSL是个加密套件,负责对HTTP的数据进行加密,TLS是SSL的升级版,现在提到HTTPS&#xff0…...

LOL-v2数据集和VE-LOL数据集的区别

LOL-v2数据集和VE-LOL数据集的区别 LOL-v2 LOL-v2数据集[64]包括两个不同的子集,即LOL-v2-real和LOL-v2-synthetic。LOL-v2-real子集是通过改变ISO和曝光时间在真实场景中捕获的,包括689对用于训练和测试的图像。在LOL-v2-synthetic子集中,…...

RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式

RabbitMQ结构 Publisher : 生产者 Queue: 存储消息的容器队列; Consumer:消费者 Connection:消费者与消息服务的TCP连接 Channel:信道,是TCP里面的虚拟连接。例如:电缆相当于TCP,信道是一条独立光纤束&…...

涉及IMU的专业术语

文章目录 零偏维纳过程/布朗运动随机游走航迹推算 零偏 IMU(惯性测量单元)是一种用于测量物体在空间中的加速度和角速度的装置。它通常由加速度计和陀螺仪组成,这些传感器可以帮助确定物体的运动状态和方向。 在IMU中,“零偏”&…...

二维数组对角线判断

二维数组对角线判断 对于两个点(x1, y1)和(x2, y2)。如何判断二者是否在同一条正对角线,反对角线,或者正或反对角线上? 正对角线判断 x2-x1 y2 -y1 证明:任意一点(x1k, y1k),(k…...

数据可视化(六)多个子图及seaborn使用

1.多个子图绘制 #绘制多个子图 #subplot(*args,**kwargs) 每个subplot函数只能绘制一个子图 #subplots(nrows,ncols) #fig_add_subplot(行,列,区域) #绘制子图第一种方式 plt.subp…...

opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()

双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有…...

Leetcode 268. Missing Number

Problem Given an array nums containing n distinct numbers in the range [0, n], return the only number in the range that is missing from the array. Algorithm Sum all the numbers as x x x and use n ( n 1 ) 2 − x \frac{n(n1)}{2} - x 2n(n1)​−x. Code …...

MybatisPlus实战笔记

概述 Mybatis支持定制化SQL、存储过程以及高级映射,避免几乎所有的 JDBC 代码和手动设置参数以及获取结果集。可以使用简单的 XML 或注解来配置和映射原生信息,将接口和Java的POJO映射成数据库中的记录。 缺点: SQL工作量很大,尤…...

Android Studio 报错:Failed to create Jar file xxxxx.jar

通过分析,新下载的项目没有project/gradle目录,故通过其他项目复制到当前项目,就解决了该问题。 同时也出现了新的问题 Unable to start the daemon process.The project uses Gradle 4.1 which is incompatible with Java 11 or newer.原因…...

Django实现音乐网站 ⑸

使用Python Django框架制作一个音乐网站, 本篇主要是配置媒体资源设置。 目录 配置介绍 设置媒体资源 创建媒体资源目录 修改settings.py 注册媒体资源路由 总结 配置介绍 静态资源是指项目配置的js/css/image等系统常用文件。对于一些经常变动的资源&#x…...

基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现

一、本章内容 本章实现工作台界面相关内容,包括echart框架引入,mock框架引入等,实现工作台界面框架搭建,数据加载。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 基于VUE3+Layui从头搭建通用后台管理系统合集-工作台界面布局实现 五、…...

前端vue uni-app自定义精美海报生成组件

在当前技术飞速发展的时代,软件开发的复杂度也在不断提高。传统的开发方式往往将一个系统做成整块应用,一个小的改动或者一个小功能的增加都可能引起整体逻辑的修改,从而造成牵一发而动全身的情况。为了解决这个问题,组件化开发逐…...

高通滤波器,低通滤波器

1.高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。 import cv2 import numpy as np from scipy import ndimagekernel_3_3 np.array([[-1,-1,-1],[-1,8,-1],[-1,-1,-1]]) print(kernel_3_3) kernel_5_5 np.array([[-1,-1,-1,-1,-1],[-1,1,2,1,-1],[-1,2,4,2,-…...

机器学习深度学习——卷积的多输入多输出通道

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——从全连接层到卷积 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮…...

HTML5中Canvas学习笔记:Canvas

目录 一、HTML中Canvas画图strokeStyle 和 fillStyle 的区别是什么? 二、如何设置一幅canvas图中某个颜色透明? 三、H5 canvas中strokeRect参数如果是小数,如何处理? 四、H5 Canvas中如何画圆角矩形框? 一、HTML中…...

Windows安装子系统Linux

Windows安装子系统(Linux ubuntu) 安装条件步骤1.安装WSL命令2.设置Linux用户名和密码3.写个简单的.c程序看看4.如何互传文件 安装条件 Windows 10版本2004及更高的版本才能安装。 步骤 1.安装WSL命令 我们可以使用WSL来安装子系统 Linux ubuntu(默认是这个)。 …...

C 语言的 pow() 函数

作用: Calculates x raised to the power of y. 函数原型: double pow( double x, double y ); Required Header: <math.h> Compatibility: ANSI Return Value pow returns the value of x y x^{y} xy. No error message is printed on overflow or underflow. Paramete…...

socket 基础

Socket是什么呢&#xff1f; ① Socket通常也称作“套接字”&#xff0c;用于描述IP地址和端口&#xff0c;是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。 ② Socket是连接运行在网络上的两个程序间的双向通信的端点。 ③ 网络通讯其实指…...

从零开始:手把手教你用UML绘制状态图(附实战案例)

从零开始&#xff1a;手把手教你用UML绘制状态图&#xff08;附实战案例&#xff09; 在软件开发的世界里&#xff0c;UML&#xff08;统一建模语言&#xff09;就像工程师的通用语言&#xff0c;而状态图则是其中最强大的工具之一。想象一下&#xff0c;当你需要清晰地描述一个…...

Telemetrix4UnoR4:Arduino Uno R4的轻量级双向固件框架

1. 项目概述Telemetrix4UnoR4 是专为 Arduino Uno R4 系列开发板设计的嵌入式固件服务器框架&#xff0c;其核心目标是构建一个轻量、可靠、可扩展的双向通信桥梁&#xff0c;使 Python 主机端&#xff08;运行telemetrix_uno_r4或telemetrix_uno_r4-aio库&#xff09;能够以类…...

三种常见AC/DC转换方案详解与选型指南

1. 交流转直流方案概述在电子设备设计中&#xff0c;将交流电转换为直流电是最基础也是最重要的环节之一。作为一名硬件工程师&#xff0c;我在过去十年里接触过各种AC/DC转换方案&#xff0c;从简单的阻容降压到复杂的开关电源设计。这些方案各有特点&#xff0c;适用于不同的…...

解密KV Cache:为什么它能提升大模型推理速度3倍以上?

KV Cache技术深度解析&#xff1a;如何让大模型推理速度飞跃提升&#xff1f; 在自然语言处理领域&#xff0c;大模型推理速度一直是开发者关注的焦点。想象一下&#xff0c;当你向AI助手提问时&#xff0c;如果每次响应都需要等待数秒甚至更久&#xff0c;用户体验将大打折扣。…...

从.nii文件到发表级配图:一份超详细的fMRI脑区(ROI)可视化避坑与调参指南

从.nii文件到发表级配图&#xff1a;一份超详细的fMRI脑区&#xff08;ROI&#xff09;可视化避坑与调参指南 当你终于跑完最后一组统计分析&#xff0c;看着屏幕上那些代表显著脑区的彩色斑点时&#xff0c;可能已经迫不及待想把它们放进论文插图。但现实往往是——直接导出的…...

Windows 11安卓子系统终极指南:免费运行Android应用的完整解决方案

Windows 11安卓子系统终极指南&#xff1a;免费运行Android应用的完整解决方案 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否曾经想在Windows电脑上…...

鼎捷T100程序开发实战:从核心类型到高效开发全解析

1. 鼎捷T100程序开发入门指南 第一次接触鼎捷T100系统开发时&#xff0c;我被它复杂的架构搞得晕头转向。记得当时接到一个采购单维护的需求&#xff0c;连最基本的程序类型都分不清楚&#xff0c;结果在开发过程中反复修改了好几次。经过这些年的实战&#xff0c;我总结出一套…...

基于深度学习的手把手学习 YOLOv8-Pose 关键点检测实战:杂草根茎关键点标注与训练全流程指南

YOLOv8-Pose 关键点检测实战&#xff1a;杂草根茎关键点标注与训练全流程指南 作者&#xff1a;张教授&#xff08;计算机视觉与农业AI实验室主任&#xff09; 引言在精准农业和智能除草领域&#xff0c;杂草根茎关键点检测技术具有重要意义。传统YOLO系列主要关注目标检测&…...

Python MCP服务器开发模板演进史(2026 LTS版首次开源:含OpenTelemetry 1.28+LLM Gateway内核)

第一章&#xff1a;Python MCP服务器开发模板2026 LTS版核心定位与演进动因 Python MCP&#xff08;Modular Control Protocol&#xff09;服务器开发模板2026 LTS版并非一次简单版本迭代&#xff0c;而是面向工业级长周期运维场景的战略性重构。其核心定位是构建**可验证、可审…...

如何用ContextMenuManager轻松管理Windows右键菜单:终极效率提升指南

如何用ContextMenuManager轻松管理Windows右键菜单&#xff1a;终极效率提升指南 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是不是也经常被Windows右键菜…...