2017-10-17 101 views
0

我有3个字符串类似如下:访问字符串元素在MATLAB

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

我要访问的子字符串从父字符串中的元素(国名)(世界)和在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 

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

+0

感谢您的及时回复。 我的预期输出是直接显示来自父字符串的国家名称(不使用大陆字符串) –

+0

'd'可以是美国或欧洲字符串;不作为变量,因此不能像变量一样索引 –

+0

d = America(当i = 1时,在第一次迭代中) –

回答

0

您可以使用类型单元格的变量来存储不同类型的变量,特别是字符串。我建议:

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 

如果你喜欢指数的字符串,而不是一个正数(即数字索引),看看变量的类型结构。您可以打印出工作区中的变量列表,包括命令,其中

+2

链接的副本已经暗示 –

+0

我发布此答案后找到了重复项。对不起,我也应该寻找它。无论如何,很高兴看到其他答案接近我的。 –

+0

在您发布您的答案之前,建议您存在重复的评论(由我撰写)。对标准的“可能的重复:......”的注释进行快速检查总是很好,它会自动添加到相应标记的问题下。如果是的话,这个答案无论如何都适合,仅供将来参考。 – Wolfie