我正在使用 Matlab。我有一个 3d rgb 直方图,它存储每个(r, g, b)
值的像素数。3d 矩阵非常稀疏。有没有办法在 Matlab 中处理稀疏的 3d 矩阵?我将有义务。
问问题
448 次
1 回答
0
您最初的问题不是很清楚,因此我对其进行了重新表述,以使其更易于理解、可搜索和有用。我现在正在回答您的问题,以便将其从未回答列表中删除。
众所周知,Matlab 不直接处理 3D 矩阵。一种解决方法是使用稀疏矩阵的元胞数组。
假设您要创建一个仅包含元素(1, 1, 1)
and的稀疏矩阵,(1, 3, 50)
并假设A(1, 1, 1) = 1
and A(1, 3, 10) = 54
。您可以执行以下操作:
mySp{1} = sparse(3, 3);
mySp{10} = sparse(3, 3);
mySp{1}(1, 1) = 3;
mySp{10}(1, 3) = 54;
这样,
>> mySp
mySp =
[3x3 double] [] [] [] [] [] [] [] [] [3x3 double]
可以看出,mySp
是一个10
元素数组。第一个和第十个元素是稀疏矩阵,而其他元素是空的。非空的第一个和第十个稀疏矩阵可以恢复为
temp1 = mySp{1};
temp2 = mySp{10};
返回
>> temp1
temp1 =
(1,1) 3
和
temp2 =
(1,3) 54
于 2016-11-08T08:03:44.760 回答