如果我在 matlab 中有 2 个单元格数组,一个包含用户名,另一个包含坐标,如何使名字等于第一个坐标,依此类推? 例如,我想要user1=[xR1 yR1],....,user50=[xR50 yR50],所以当我想使用坐标[xR1 yR1]时,我调用user1。那么如何做到这一点呢?这是 2 个单元格数组的代码
user = cell(50,50);
name=cell(size(user,2),1);
for i=1:size(user,2)
name{i}=['user ',num2str(i)];
end
users = cell(50, 1);
for i=1:50
users{i} =[xR(i) yR(i)];
end
你可以这样做
sz = 50;
user = cell(sz, 1);
name = cell(sz, 1);
for i=1:sz
name{i} = ['user_', num2str(i)];
user{i} = rand(1, 2);
end
for i=1:sz
eval([name{i} '= user{i}']);
end
我会避免用 50 个这样的变量弄乱工作区。我宁愿有一个以字段名称为User IDs
的struct
.以下代码是5
此类用户 ID 的演示,您可以将其扩展到50
-
%%// X-Y Coordinates
coords = randi(5,5,2); %%// random data
%%// User IDs
user_ids = cell(size(coords,1),1);
for i=1:size(coords,1)
user_ids{i}=['user',num2str(i)];
end
%%// Combined cell array to store X-Y coordinates and User IDs
all_data = cell2struct(num2cell(coords), user_ids, 1);
使用方法:如果要访问user4
数据,请使用此 - vertcat(all_data.user4)'