如何在不知道大小的情况下绘制matlab中的所有矩阵元素?

How to plot all the matrix elements in matlab whitout knowing the size?

假设有下一个矩阵

A = [ 1 2 2 ;
      1 2 3 ;
      2 3 4 ;
      3 4 5 ;
      4 4 6 ;
      1 11 12]

我尝试使用 quiver3 按以下方式绘制行:

quiver3(0,0,0,A(1:1),A(1:2),A(1:3),0);
quiver3(0,0,0,A(2:1),A(2:2),A(2:3),0);
quiver3(0,0,0,A(3:1),A(3:2),A(3:3),0);

依此类推直到最后一行,但是如何为矩阵的每一行应用 quiver3 而不是每行一行? 此外,矩阵的大小并不总是相同,因此每行一个命令会产生一些行而有时不绘制,并且可能没有足够的行来绘制其他 .
(示例:提供的矩阵有 6 行,所以我制作了 6 个 quiver3 表达式,但稍后如果矩阵只有 3 行,它会给我一个错误,如果稍后它有 8 行,就会有 2 vectors/row未绘制)。
我猜它与范围和网格运算符有关,但我看不出如何。

如果您的矩阵 AN 行,其中每行存储要传递给 quiver3[u v w] 个分量,那么您可以绘制所有 N 一次调用 quiver3 中的箭头,前提是您确保所有输入参数的大小相同。如果您从原点开始绘制所有这些,那么您必须创建一个 N-by-1 零向量以用于您的 xyz 输入:

A = [1 2 2;
     1 2 3;
     2 3 4;
     3 4 5;
     4 4 6;
     1 11 12];
z = zeros(size(A, 1), 1);
quiver3(z, z, z, A(:, 1), A(:, 2), A(:, 3), 0);

请注意我用来将 A 拆分成列以传递给 quiver3indexing 语法。这是给定样本数据的结果图: