当前位置: 首页 > 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
http://www.lryc.cn/news/109873.html

相关文章:

  • HTTPS文件传输
  • LOL-v2数据集和VE-LOL数据集的区别
  • RabbitMQ(一) - 基本结构、SpringBoot整合RabbitMQ、工作队列、发布订阅、直接、主题交换机模式
  • 涉及IMU的专业术语
  • 二维数组对角线判断
  • 数据可视化(六)多个子图及seaborn使用
  • opencv-34 图像平滑处理-双边滤波cv2.bilateralFilter()
  • Leetcode 268. Missing Number
  • MybatisPlus实战笔记
  • Android Studio 报错:Failed to create Jar file xxxxx.jar
  • Django实现音乐网站 ⑸
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)七:工作台界面实现
  • 前端vue uni-app自定义精美海报生成组件
  • 高通滤波器,低通滤波器
  • 机器学习深度学习——卷积的多输入多输出通道
  • HTML5中Canvas学习笔记:Canvas
  • Windows安装子系统Linux
  • C 语言的 pow() 函数
  • socket 基础
  • JMeter(二十五)、一些概念的理解---90%响应时间、事务、并发
  • 直播课 | 大橡科技研发总监丁端尘博士“类器官芯片技术在新药研发中的应用”
  • Python中的PDF文本提取:使用fitz和wxPython库(带进度条)
  • mysql 将字段值+1或自增
  • 组合总和——力扣39
  • PostgreSQL Patroni_exporter 监控 patroni高可用工具
  • C语言多级指针
  • IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介
  • ArraySetter
  • Python如何解决Amazon亚马逊“图文验证码”识别(6)
  • plsql连接oracle出现TTC错误