2013-11-25 31 views
1

我有數據集存儲到幾個變量,如:p1_5,p1_7,p1_9 .... p1_19,我想計算每個數據集的std()。現在如何在matlab for循環中做到這一點?如何連接'p1_'到n,但仍然保持它作爲一個變量,但不是字符串?連接字符串作爲matlab中的變量?

for n = 5:2:19 
    std(p1_??); 
end 
+4

我強烈建議重構你的數據,所以你不必像丹在他的回答中推薦的那樣使用'eval'命令。 – MZimmerman6

回答

3

您可以使用eval此:

for n = 5:2:19 
    eval(['std(p1_', num2str(n), ')']); 
end 

但你可能應該考慮重組你的代碼沒有。你可以將所有的p1s存儲在3D矩陣或單元陣列中嗎?

2

你可以把它們放在單元陣列中。更好的是,如果它們具有相同的尺寸,則將它們堆疊在矩陣中。