2011-11-04 78 views
0

我有數據與字符time1,time2,time3直到time60。這意味着每一次都有自己的結果,例如time1=70time2=56和等....如何,而不需要安排在矩陣這些數據來手動安排他們:在matlab中編程字符

time=[time1 time2 time3 time4 time5.......time60]. 

我不知道除了上述步驟。上述步驟需要更多時間才能輸入60個數據。有沒有最簡單的方法來安排這些數據?

回答

0

您可以在for-loop中使用eval命令。

time = []; 
for n = 1:60 
    eval(['time = [time, time', num2str(n), '];']); 
end 
+0

>它確實可以工作,但是你非常喜歡聲音 – rina

0

你可以直截了當地做沒有一個環路

eval(['time=[' sprintf('time%d ',1:60) '];']) 

然而,在未來,儘量不要命名變量time1time2等相反,考慮在矢量存儲的值如time(1)=...time(2)=...。這可以讓你的代碼更清潔,更少的變量混亂你的工作空間,可以利用MATLAB真正擅長的矢量化操作(這取決於你用它做什麼,但是......),如果你需要將值保存到MAT文件,您只需要保存一個變量而不是60.

我也建議儘可能不要使用eval,只有在無法避免的情況下(例如,使用其他人的代碼/數據)。

+0

,或者至少將它們放在一個結構中,這實際上是一個關聯數組,並允許您按名稱查找元素。事實上,你可以使用'save('matfilename');明確; S = load('matfilename');'將變量從工作區移動到結構中。 –

+0

@BenVoigt這並不能真正解決問題。首先,你保存_all_變量,而不僅僅是你想要的變量。其次,你仍然有'S.time1','S.time2'這樣的東西,它比OP已經有了更多的幫助...... – abcd

+0

[從變量生成字段名稱](http://www.mathworks。 com/help/techdoc/matlab_prog/br04bw6-38.html#br1v5cc-1)或['getfield'](http://www.mathworks.com/help/techdoc/ref/getfield.html) –