2014-05-24 34 views
0

爲了減少重複部分的程序的大小,我想做一個循環。但我得到了以下問題:在我的matlab程序中執行for循環的錯誤

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

回答

1

您需要使用eval當你想要的位置由基於創建字符串在MATLAB中動態評估命令。你在循環中做的是你試圖構造一個字符串並神奇地將字符串分配給四個變量A,B,C,D。如果您想要命令執行,請使用eval。換句話說,這樣做:

for n=1:4 
    . 
    . 
    . 
    [A,B,C,D] = eval(['A002A_' num2str(n) '_Filtre(matrices{:});']); 
    . 
    . 
end 

確保eval包含一個字符串。這個字符串本質上就是您希望MATLAB執行的命令。

注:這是假設matrices已經在工作區中使用此代碼之前定義。因此,請確保已聲明matrices