簡體   English   中英

Matlab:如何創建一個循環以根據特定的列值讀取矩陣

[英]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

有關sortrows()的信息

請記住,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM