MATLAB 的 full() 函数如何处理行参数?

What does MATLAB's full() function do with a row parameter?

我有一行代码如下

nrma2 = full(abs(sum(A.*A',1)));

但是sum(...,1)是一行。 abs() returns 只有绝对数字的一行

那么,full() 会做什么?

full() 将从稀疏矩阵中生成完整矩阵。稀疏矩阵可以是行向量,它只是一个 1 -by- N 矩阵。您发布的代码可能具有 A 作为稀疏矩阵,或者包含 full() 以防它不是完整矩阵以确保它成为完整向量。

A = sparse([1,0;1,0])
A =
   (1,1)        1
   (2,1)        1
nrma2 = full(abs(sum(A.*A',1)))  % Full row-matrix
nrma2 =
     1     0
abs(sum(A.*A',1))  % Sparse row-matrix
ans =
   (1,1)        1

具体来说,来自 full() 上的文档:

full
Convert sparse matrix to full storage

(...)

S — Sparse matrix to convert
Sparse matrix to convert, specified as a matrix. If S is already a full matrix, then A is identical to S.