我有一个矩阵如下:
merged =
'A05' 'a001'
'A06' 'a001'
'B05' 'a001'
'B06' 'a001'
'C01' 'a001'
'C02' 'a001'
'C03' 'a001'
'C04' 'a001'
'C05' 'a001'
'C06' 'a001'
'D01' 'a001'
'D02' 'a001'
'D03' 'a001'
'D05' 'a001'
'D04' 'a001'
'D06' 'a001'
'A03' 'a002'
'A04' 'a002'
'B03' 'a002'
'B04' 'a002'
是否可以制作循环,首先读取a001
行,然后在第二轮读取a002
?
谢谢, 木本
答案 0 :(得分:0)
查找包含“a001”的行。然后选择这些行的所有列
A = merged(find(merged(:,2)=='a001'),:)
A = merged(find(merged(:,2)=='a002'),:)
或者您可以根据第二列对它们进行排序,然后应用您的for循环
sorted = sortrows(merged,2);
for i=1:1:size(sorted,1)
% Do what you need
end
上的信息
答案 1 :(得分:0)
请记住,在Matlab中循环解决方案通常很慢, 但如果你想要它,这里有一个变种
tags = {'a001','a002'};
for i=1:length(tags)
M = merged(strcmp(merged(:,2),tags{i}));
end
然后你可以在每次尝试中操作M