Arrays 如何在MATLAB中使用单元阵列生成稀疏矩阵?
稀疏矩阵是几乎所有元素都具有相同值(通常为零)的大型矩阵。稀疏矩阵的标准表示法占用大量内存,而有用信息可以用更少的内存捕获。表示稀疏矩阵的一种可能方法是使用单元向量,其第一个元素是表示稀疏矩阵大小的2元素向量。第二个元素是一个标量,指定稀疏矩阵的默认值。单元向量的每个连续元素是一个3元素向量,表示稀疏矩阵中的一个元素,该元素的值不是默认值。这三个元素是行索引、列索引和实际值。编写一个名为sparse2matrix的函数,该函数接受上述单元向量的单个输入,并返回名为matrix的输出参数,即传统形式的矩阵Arrays 如何在MATLAB中使用单元阵列生成稀疏矩阵?,arrays,matlab,matrix,sparse-matrix,Arrays,Matlab,Matrix,Sparse Matrix,稀疏矩阵是几乎所有元素都具有相同值(通常为零)的大型矩阵。稀疏矩阵的标准表示法占用大量内存,而有用信息可以用更少的内存捕获。表示稀疏矩阵的一种可能方法是使用单元向量,其第一个元素是表示稀疏矩阵大小的2元素向量。第二个元素是一个标量,指定稀疏矩阵的默认值。单元向量的每个连续元素是一个3元素向量,表示稀疏矩阵中的一个元素,该元素的值不是默认值。这三个元素是行索引、列索引和实际值。编写一个名为sparse2matrix的函数,该函数接受上述单元向量的单个输入,并返回名为matrix的输出参数,即传统形
cellvec={[23],0[123],[22-3]};
矩阵=稀疏矩阵(cellvec)
母体=
0 3 0
0 -3 0
根据问题中的信息:
在向量单元阵列中,它通常是用作稀疏矩阵的第一个向量
矩阵维数
第二个元素是一个标量,指定
稀疏矩阵
其他向量用于指定的位置和值
稀疏矩阵中的元素,即[i,j,x]
,其中i
,j
是位置
在矩阵中,x
是元素的值
因此,该计划很简单:
function matrix=sparse2matrix(cellvec);
matrix=zeros(cellvec{1})+cellvec{2};
for i=3:length(cellvec)
matrix(cellvec{i}(1,1),cellvec{i}(1,2))=cellvec{i}(3);
end