问题
在c里是局部变量的变量,在matlab里就变成了全局变量,如:
test.m
for m=1:2
n=m;
end
>> test
n =
2
这样会引来一些麻烦,如:
test.m
for m=1:2
k=zeros(1,m);
n(1,:)=k;
end
>> test
赋值具有的非单一 rhs 维度多于非单一下标数
出错 test (line 3)
n(1,:)=k;
>>
解决
方法1:clear
test.m
for m=1:2
clear n k
k=zeros(1,m);
n(1,:)=k;
end
有关clear的用法参考:https://blog.csdn.net/u010555688/article/details/25365715
清除全部变量:clear
清除当某些变量:clear 变量名1 变量名2 ...
清除除某些变量之外所有变量:clearvars -except 变量名1 变量名2 ...
可按照一定的命名规则清除变量,如清除以字母m开头的全部变量:clear m*
方法2:不要指定行或列,就是单个n
test.m
for m=1:2
k=zeros(1,m);
n=k;
end