2015-11-03 45 views
1

稀疏我有400行,500列和所述第三尺寸的3D矩阵是4 1和0的该矩阵撰写但它不是一个眼睛矩阵。
怎样才可以转换为稀疏3D矩阵?在3D基质

谢谢

+0

MATLAB不支持3-d稀疏阵列。 400x500x4是非常小的(特别是如果你将其存储为'logical'),所以我不认为稀疏存储会给你无论如何多少好处。关键的问题是:你需要在这个阵列上执行什么操作? – Edric

回答

2

AFAIK MATLAB不支持3D稀疏数组,只有2D。您可以将数据转换为4维的2D稀疏400×500矩阵。

for ii=4:-1:1 
    mySp{ii} = sparse(myFull(:,:,ii)); 
end 

有关更多信息,请参阅sparse

+0

我不想使用“for”。所以,我将每个维度转换为稀疏矩阵,但是当我想用“猫”来集成这些维度时。我得到错误。 – user196345

+0

@ user196345这是因为'cat'-ING稀疏2D需要Matlab来创建不被支持的SPase 3D。使用循环转换为单元格数组。 – Shai

+0

@ user196345这有什么错了'for'循环? – rayryeng