我对这类代码有疑问:
First = ["A","B","C"];
Second = ["D","E","F"];
Group = ["First", "Second"];
for gr = Group
current = gr;
for number = 1:numel(current)
my_variable(number) = current(number);
end
end
这是我的问题的再现。在这种情况下,my_variable
等于"First"
。但我希望"A"
然后"B"
然后"C"
来自名为"First"
的变量。
根据我的理解,此代码应执行以下操作:
for gr = Group
表示gr = First to Second current = gr;
表示当前=第一for number = 1:numel(current)
表示数字= 1:3(“第一”中的元素数量)my_variable(number) = current(number);
表示my_variable = First(1)=“A”而不是我my variable
等于"First"
或"Second"
。
我希望你理解我的意思。
P.S。 string arrays我使用的是双引号(" "
),例如First = ["A","B","C"];
,只能在Matlab 2016b或更高版本中使用。
答案 0 :(得分:2)
您应该使用cell arrays执行此操作:
first = {'A','B','C'};
second = {'D','E','F'};
group = {first, second};
for group_ind = 1:numel(group)
current = group{group_ind};
my_variable = cell(1,numel(current));
for number = 1:numel(current)
my_variable{number} = current{number};
disp(my_variable)
end
end
对于first
和second
,您还可以使用字符串数组:
first = ["A","B","C"];
second = ["D","E","F"];
group = {first, second};
for group_ind = 1:numel(group)
current = group{group_ind};
my_variable = strings(1,numel(current));
for number = 1:numel(current)
my_variable(number) = current(number);
disp(my_variable)
end
end