为什么我收到此错误?矩阵的大小完全相同:
L=rand(4,1000);
for i=1:1000;
A(i)=logzn(0.1,0.4,L(4,i));
B(i)=logzn(0.3,0.7,L(4,i));
C(i)=logzn(0.5,1.0,L(4,i));
end
F=(~A&B | ~B&C);
这里是logzn函数:
function [ y ] = logzn( aMin,aMax,x )
if ((aMin<=x)&&(aMax>=x))
y=1;
else
y=0;
end
这是我得到的错误: 使用&amp;错误 矩阵维度必须一致。
答案 0 :(得分:0)
错误意味着它所说的内容,A
,B
和C
的大小不同。您可以查看:
isequal(size(A), size(B)) && isequal(size(A), size(C))
话虽如此,您发布的代码没有任何问题;但是,如果错误实际上来自这些代码行,则必须在脚本中的其他位置将A
,B
和C
初始化为不同的大小(或者您可能使用过之前的变量名称相同,并没有清除它们。您需要在循环之前预先分配它们,以确保它们的大小相同。
L = rand(4, 1000);
[A, B, C] = deal(zeros(size(L,2), 1));
for k = 1:size(L,2);
A(k)=logzn(0.1,0.4,L(4,k));
B(k)=logzn(0.3,0.7,L(4,k));
C(k)=logzn(0.5,1.0,L(4,k));
end
F=(~A&B | ~B&C);