String MATLAB:统计表列中的字符串出现次数
我正在尝试查找此表中的字数: 请在此下载表格: 词语由“类型”标准表示,即“字母”。需要注意的关键是,表中并非所有内容都是单词,条目“”注册为单词。换言之,我需要通过只计算“字母”来确定单词的数量,除非它是“缺失的” 以下是我的尝试(但没有成功——注意两次提到“问题区域”): 列=1的String MATLAB:统计表列中的字符串出现次数,string,matlab,datatable,count,String,Matlab,Datatable,Count,我正在尝试查找此表中的字数: 请在此下载表格: 词语由“类型”标准表示,即“字母”。需要注意的关键是,表中并非所有内容都是单词,条目“”注册为单词。换言之,我需要通过只计算“字母”来确定单词的数量,除非它是“缺失的” 以下是我的尝试(但没有成功——注意两次提到“问题区域”): 列=1的大小(表2) column_name=sprintf('column%d',col'的字数); MiddleWordsType_table.(列名称)=nnz(ismember(table_RandomInfoM
大小(表2)
column_name=sprintf('column%d',col'的字数);
MiddleWordsType_table.(列名称)=nnz(ismember(table_RandomInfoMiddle(:,col).Variables,{'letters'});
MiddleWordsExclusionType_table.(列名称)=nnz(ismember(table_RandomInfoMiddle(:,col).Variables,{'}));%问题领域
结束
%从表中调用数据
MiddleWordsType=表2阵列(MiddleWordsType\u表);
MiddleWordsExclusionType=表2阵列(MiddleWordsExclusionType_表);%问题领域
%去掉“Type”所在的零
MiddleWordsTotal_Nr=MiddleWordsType(MiddleWordsType~=0);
MiddleWordsExclusionTotal\u Nr=MiddleWordsExclusionType(MiddleWordsExclusionType~=0);
%最终答案
FinalMiddleWordsTotal\u Nr=MiddleWordsTotal\u Nr-MiddleWordsConclusionTotal\u Nr;
任何帮助都将不胜感激。谢谢大家! 当列2满足某些条件时,可以使用
MiddleWordsType = numel( unique( ...
Table_RandomInfoMiddle{ismember(Table_RandomInfoMiddle{:,2}, 'letters'), 1} ) );
是分类数组中的关键字,而不是字符串“
”。这就是为什么它在工作区中显示为蓝色和斜体。如果要专门检查缺少的值,可以使用此选项而不是ismember
:
ismissing( Table_RandomInfoMiddle{:,1} )
像
N=numel(unique(tbl{ismember(tbl{,2},'letters'),1));
这样的东西能让你接近吗?有没有unique
,因为不清楚这是否是一个要求……请提供一个简单的输入(我们可以使用,而不是图像!)预期的输出是分类数组中的一个关键字,而不是字符串“
,虽然我不知道您的数据类型,但我认为这就是问题所在。这就是为什么它在工作区中显示为蓝色和斜体。如果您想专门检查缺少的值,可以将ismissing(表\u){:,1})
而不是ismember
。我已将我的评论转换为正确的答案,以便您可以标记为已接受(如果您愿意,可以向上投票)。我不清楚第4行的预期输出是什么-它意味着什么?您正在尝试分配单个值(缺少的行数)对于整个列-您是否只想删除nnz
,因此此列对于数据是否丢失是真/假?什么是“不工作”的意思?您有错误消息或错误结果?只是您需要使用大括号而不是方括号?nnz(ismissing(Table_RandomInfoMiddle{,col}))
您需要使列名没有空格,手动或通过在matlab.lang.makeValidName(_u)
中换行来实现。列名遵循与变量名相同的规则
ismissing( Table_RandomInfoMiddle{:,1} )