【问题标题】:Accessing the string elements in MATLAB [duplicate]在 MATLAB 中访问字符串元素 [重复]
【发布时间】:2018-03-29 08:31:13
【问题描述】:

我有 3 个字符串,如下所示:

world=["America", "Europe"]; % Parent String 
America=["USA", "Brazil", "Argentina"]; % Child1 String 
Europe=["France", "Germany", "England"]; % Child2 String

我想从父字符串 (world) 中访问子字符串 (Country names) 的元素,并在 for 循环中使用它以进行进一步操作。我正在尝试以下方式:

for i=1:2
  d=world(i); % Temporary variable to store the continent name
for j=1:3
disp(d(j)); % Throws an Error: "Index exceeds Matrix dimensions
end
end

我做错了什么?任何帮助将不胜感激。

【问题讨论】:

  • 感谢您的及时回复。我的预期输出是直接从父字符串显示国家名称(不使用大陆字符串)
  • d"America""Europe" 作为字符串;不是作为变量,因此不能像变量一样被索引
  • d=America(当 i=1 时,在第 1 次迭代中)
  • 那么在上述情况下该怎么办呢?任何建议都会有很大帮助!
  • 从父字符串(世界)访问子字符串(国家名称)的元素是什么意思?所需的输出究竟是什么?

标签: string matlab indexing


【解决方案1】:

您可以使用 cell 类型的变量来存储不同类型的变量,尤其是字符串。我建议:

america = {'USA', 'Brazil', 'Argentina'};
europe = {'France', 'Germany', 'England', 'Italy'};
continents = {america, europe};
for i = 1 : length(continents)
  for j = 1 : length(continents{i})
    disp(continents{i}{j})
  end
end

如果您喜欢按字符串而不是正数(即数字索引)来索引,请查看变量类型 struct。您可以使用命令 whos 打印出工作区中的变量列表,包括类型。

【讨论】:

  • 链接的副本已经表明
  • 我发布此答案后发现了重复项。对不起,我也应该搜索它。无论如何,很高兴看到另一个答案与我的接近。
  • 在您发布答案之前(由我)写了建议存在重复的评论。快速检查标准“Possible duplicate of: ...”的 cmets 总是好的,该标准会自动添加到相应标记的问题下方。碰巧是的,无论如何,这个答案都是合适的,仅供将来参考。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多