为了减少重复部分的程序大小,我想做一个循环。但是我遇到了以下问题:
for n=1:4
.
.
.
[A,B,C,D] = ['A002A_' num2str(n)] '_Filtre'(matrices{:});
.
.
end
??? Error: Unexpected MATLAB expression.
此行将取代:
[A, B, C, D] = A002A_1_Filtre(matrices {:});
循环在值1
的位置上进行答案 0 :(得分:1)
如果要根据创建字符串动态评估MATLAB中的命令,则需要使用eval
。你在循环中做的是你试图构造一个字符串并神奇地将字符串分配给四个变量A,B,C,D
。如果您希望执行命令,请使用eval
。换句话说,这样做:
for n=1:4
.
.
.
[A,B,C,D] = eval(['A002A_' num2str(n) '_Filtre(matrices{:});']);
.
.
end
确保eval
包含字符串。该字符串本质上是您希望MATLAB执行的命令。
NB:这是假设在使用此代码之前已在工作区中定义matrices
。因此,请确保声明matrices
。