[英]Matlab: How to create a loop for reading an matrix based on specific column values
我有一個如下的矩陣:
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
?
謝謝,伍迪
查找包含“ 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
請記住,Matlab中的循環解決方案通常很慢,但是如果您願意的話,這是一個變體
tags = {'a001','a002'};
for i=1:length(tags)
M = merged(strcmp(merged(:,2),tags{i}));
end
那么您可以在每個發聲中對M進行操作
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.