Matlab 中的下标赋值维度与真实索引不匹配

Subscripted assignment dimension mismatch in Matlab with true index

我写了这个 for 循环来做一些事情,我确定这个结果数组的大小等于 30,但我不知道为什么会出现关于不匹配维度的错误!

for rno=1:30
    PersonNumber = outputtrainingdata(rno);
    RealOutput = finaloutputforeachrow(rno,PersonNumber);
    if round(RealOutput) == 1
        result(rno) = 'True';    % Error in this line 
        %result = 'True'
        TrueTrainingcounter = TrueTrainingcounter+1;
    else
        result(rno) = 'False';
        %result = 'False'
    end

 end

您正在尝试将 字符串 'True'(长度 = 4)分配给 result(rno)(长度 = 1)。同样,您正在尝试将 string 'False'(长度 = 5)分配给 result(rno)(长度 = 1)。这就是您收到尺寸不匹配错误的原因。

如果您希望 result 实际保存这些字符串,那么您需要使用元胞数组。

result = cell(1, 30);

然后使用{}

分配给它
result{rno} = 'True';

更好的方法是使用逻辑值 truefalse 而不是字符串 'True''False'。因为 length(true) == 1,我们不会再遇到维度不匹配问题。

result(rno) = round(RealOutput) == 1;