【问题标题】:In MATLAB, For Looping with String Array在 MATLAB 中,使用字符串数组进行 For 循环
【发布时间】:2013-05-13 20:58:40
【问题描述】:

有人问过类似的问题,但我仍在寻找解决方案。

在 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 中的每个状态来为每个图生成一个图。

【问题讨论】:

  • 你的问题不清楚,你说的是什么意思...同时将每个字符串放在s中的第一行"。你可以循环使用for ii = 1:numel(s) ... end

标签: arrays matlab for-loop


【解决方案1】:

就这么简单吗?

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

【讨论】:

  • 谢谢。我使用的是 [] 而不是 {}。
  • 元胞数组...需要{}括号。
【解决方案2】:

如果您想遍历s 中的每个条目,您可以这样做

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多