Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String MATLAB:统计表列中的字符串出现次数_String_Matlab_Datatable_Count - Fatal编程技术网

String MATLAB:统计表列中的字符串出现次数

String MATLAB:统计表列中的字符串出现次数,string,matlab,datatable,count,String,Matlab,Datatable,Count,我正在尝试查找此表中的字数: 请在此下载表格: 词语由“类型”标准表示,即“字母”。需要注意的关键是,表中并非所有内容都是单词,条目“”注册为单词。换言之,我需要通过只计算“字母”来确定单词的数量,除非它是“缺失的” 以下是我的尝试(但没有成功——注意两次提到“问题区域”): 列=1的大小(表2) column_name=sprintf('column%d',col'的字数); MiddleWordsType_table.(列名称)=nnz(ismember(table_RandomInfoM

我正在尝试查找此表中的字数:

请在此下载表格:

词语由“类型”标准表示,即“字母”。需要注意的关键是,表中并非所有内容都是单词,条目“”注册为单词。换言之,我需要通过只计算“字母”来确定单词的数量,除非它是“缺失的”

以下是我的尝试(但没有成功——注意两次提到“问题区域”):

列=1的
大小(表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} )