2013-05-13 48 views
-2

已經提出了類似的問題,但仍在尋找解決方案。在MATLAB中,用於使用字符串數組循環

在MATLAB中,我的狀態s的數組:

s = {'Indiana', 'Texas', 'Alabama'} 
Time is a column vector: [120 30 20 40 50]' 
Tornadoes is a column vector: [5 5 3 5 5]' 

我需要爲通過此數組S下面,而在所述第一線將每個串s中的下面的代碼循環。

index = strcmpi(States,s) 
Time = Time(index) 
Tornadoes = Tornadoes(index) 
h = scatter(Time,Tornadoes) 

那麼如何編寫代碼來推動s中的每個狀態來爲每個圖產生一個圖。

謝謝,阿曼達

+0

你的問題是不明確的,你是什麼意思*」 ......同時將S中的每個串在第一行「*。你可以循環使用'for ii = 1:numel(s)... end' – Oleg 2013-05-13 21:02:16

回答

2

它可以這麼簡單嗎?

for ii = 1:numel(s) 
    index = strcmpi(States, s{ii}) 
    Time = Time(index) 
    Tornadoes = Tornadoes(index) 
    figure % make sure you start a new figure each time... 
    h = scatter(Time,Tornadoes) 
    title(['Tornadoes in ' s{ii}]) 
end 
+0

謝謝。我正在使用[]而不是{}。 – user1608954 2013-05-13 21:06:17

+0

單元格數組...需要括號{}。 – Floris 2013-05-13 21:08:06

1

如果您是通過在s每個條目想要循環,你可以做

j = length(s) 
for i = 1:j 
    x = Time(i) 
    y = Tornadoes(i) 
    h = scatter(x, y) 
end 
相關問題