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

这篇具有很好参考价值的文章主要介绍了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))

如果需要作为函数引用,输入字符串,输出字符串中字符种类数、每种字符出现次数等结果,可参考下述代码文章来源地址https://www.toymoban.com/news/detail-626606.html

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

function [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)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包