我有一个包含多个字段的结构 myS,其中包括 myField,后者又包含其他几个字段,例如 BB。我需要计算 *'R_value' 在 BB 中出现的次数。
我试过:
sum(myS.myField.BB = 'R_value')
还有这个:
count = 0;
for i = 1:numel(myS.myField)
number_of_element = numel(myS.myField(i).BB)=='R_value'
count = count+number_of_element;
end
但它不起作用。有什么建议吗?
答案 0 :(得分:1)
如果您只是检查 BB
是否是那个文字字符串,那么您的循环就是:
count = 0;
for i = 1:numel(myS.myField)
count = count+strcmp(myS.myField(i).BB,'R_value')
end
numel
计算元素的数量。零是一个元素。错误也是如此。只需对数组求和即可。
count = 0;
for i = 1:numel(myS.myField)
number_of_element = sum(myS.myField(i).BB==R_value)
count = count+number_of_element;
end
另请注意,您的括号有误,因此您需要计算总共有多少 BB
,然后将该数字与 R_value
进行比较。我假设 R_value
是一个数字。
例如:
myS.myField(1).BB=[1 2 3 4 1 1 1]
myS.myField(2).BB=[4 5 65 1]
R_value=1