如果在Matlab中声明错误

时间:2014-06-17 22:40:39

标签: matlab

我有以下代码,

temp = cell(0,206);
for i = 1:numel(models)
    mod = models{i};
    for j = 2:size(raw_quant,1)
        if raw_quant{j,4} == mod
            temp(end+1,:) = raw_quant(j,:);
        end
    end
end

当我运行它时,我收到错误

"Error using ==

Matrix dimensions must agree."

mod只是一个字符串,我确保raw_quant {j,4}都是字符串。

有什么想法吗?

谢谢, →

1 个答案:

答案 0 :(得分:2)

通过执行以下操作我得到了同样的错误

'geoff'=='was here'

== 运算符假定正在尝试比较两个大小相等的数组或矩阵,而不是特定于字符串或char数组。如你所说,模型是一个62x1的单元阵列。该数组中的任何元素都不能保证是标量(或单个字符)。

如果你想比较两个字符串,那么我建议你使用 strcmp 函数

if strcmp(raw_quant{j,4},mod)==1
     temp(end+1,:) = raw_quant(j,:);
end

同样,重新考虑命名变量 mod ,这是一个内置的MATLAB函数,用于分割后的模数,以避免代码中的任何(可能)未来的错误,当您尝试使用 mod 功能,而不是 mod 变量。