簡體   English   中英

如何從MATLAB中的單元格數組中的矩陣中刪除某個列?

[英]How do I remove a certain column from matrices in a cell array in MATLAB?

如果我有一個包含很少矩陣的單元格數組。 每個矩陣具有不同的行號但具有相同的列號。

C{1} = [30x4 double] C{2} = [25x4 double] C{3} = [32x4 double] ...etc

如果我想刪除每個矩陣中的第一列和第三列,我該怎么辦?

所以單元格數組將成為:

new_C{1} = [30x2 double] new_C{2} = [25x2 double] new_C{3} = [32x2 double]

其中new_C中的這兩列來自單元格數組C中的第二列和第四列。

我假設你已經使用for循環嘗試了明顯的解決方案。 另一種方法是使用cellfun ,結合邏輯索引

columns = false(1, 4);
columns([2, 4]) = true;
D = cellfun(@(m)m(:,columns), C, 'UniformOutput', 0)

首先,我們為列構建索引向量。 然后我們使用cellfun將索引應用於單元數組中的每個元素。 我們使用'UniformOutput', 0 ,因為我們想要獲得另一個單元格數組(並且索引操作的結果不是標量)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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