2013-05-13 165 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 
相关问题