簡體   English   中英

如何在 MATLAB 中將二維矩陣元胞數組轉換為多維數組

[英]How to convert a cell array of 2D matrices into a multidimensional array in MATLAB

在 MATLAB 中,我有一個定義的元胞數組C

size(C) = 1 x 150

此單元格C每個矩陣T的大小

size(C{i}) = 8 x 16

我想知道是否有一種方法可以定義大小為 8 x 16 x 150 的新多維 (3D) 矩陣M

那就是當我寫命令size(M)我得到 8 x 16 x 150

謝謝! 期待您的回答

如果我正確理解您的問題,您有一個包含 150 個單元格的單元格數組,每個單元格元素為8 x 16 ,並且您希望在第三維中將所有這些矩陣堆疊在一起,以便您擁有一個大小為8 x 16 x 150的 3D 矩陣8 x 16 x 150

這是一個簡單的:

M = cat(3, C{:});

這種語法可能看起來很奇怪,但它非常有效。 命令cat執行矩陣的連接,其中第一個參數是您要連接到的維度...所以在您的情況下,這是第三個維度,后面的參數是您要連接以生成最終矩陣的矩陣。

執行C{:}會創建所謂的逗號分隔列表 這相當於在 MATLAB 中輸入以下語法:

C{1}, C{2}, C{3}, ..., C{150}

因此,通過執行cat(3, C{:}); ,你真正在做的是:

cat(3, C{1}, C{2}, C{3}, ..., C{150});

因此,您將獲取所有 150 個單元格並將它們在第三維中連接在一起。 但是,不必輸入 150 個單獨的單元格條目,而是通過C{:}創建一個逗號分隔的列表來封裝。

暫無
暫無

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

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