嗨,我正在努力实现这个目标:
for i=1:maxaps
for j=1:length(num2)
**if (isequal(sortedCell(i),txt2(j)) && sortedCell(i)~=0)** %important line
rssi2sorted(i)=rssi2(j); %I don't think we need matching part
break;
end
end
end
我收到此错误:
??? Undefined function or method 'ne'
for input arguments of type 'cell'.
Error in ==> sortingmethod at 116
if
(isequal(sortedCell(i),txt2(j))
&& sortedCell(i)~=0)
如果我这样做:
for i=1:maxaps
for j=1:length(num2)
**if (isequal(sortedCell{i},txt2(j)) && sortedCell(i)~=0)** %important line
rssi2sorted(i)=rssi2(j); %I don't think we need matching part
break;
end
end
end
由于格式:,因此无法比较元素
>> sortedCell{1}
ans =
00:1e:58:f4:15:f7
>> txt2(6)
ans =
'00:1e:58:f4:15:f7'
有关如何解决此问题的任何建议?
谢谢!
答案 0 :(得分:2)
我认为问题实际上是这个部分(你的错误引用的ne
):
sortedCell(i)~=0
您将单元格而不是其内容与零进行比较。你应该使用:
sortedCell{i}~=0
修改:
如果问题不是关于错误消息,而是如何比较字符串,请使用strcmp
(绝不要使用==
,eq
或isequal
进行比较字符串):
if strcmp(sortedCell{i},txt2(j))
...
end
我不知道您添加的&& sortedCell{i}~=0
部分是什么,但如果需要,您可以将其添加回来。
strcmp
也将单元格数组作为输入(请参阅文档),这样您就可以摆脱for
循环。我不知道你的代码是做什么的,但也许你可以使用这样的东西:
for j=1:length(num2)
c = strcmp(sortedCell,txt2(j));
if any(c)
rssi2sorted(c)=rssi2(j);
break;
end
end
答案 1 :(得分:0)
使用strcmp(strcmpi忽略大小写)来测试字符串是否相同,isequal用于测试值是否在数值上相等。 e.g。
if ( strcmp(sortedCell{i},txt2(j)) && sortedCell(i)~=0 )