繁体   English   中英

如何在MATlab中根据三个矩阵和数组绘制2D图?

[英]How to plot a 2D plot in MATlab from Three Matrices and an array?

我正在尝试使用三个矩阵绘制一个图,但是我不知何故。 我有三个矩阵和一个数组。 假设,

A =

     1     2     3

     4     5     4

     7     8     9

B =

     2     3    13

     5    11    10

     9     7     6


C =

     1     2     3
     2     3    13
     5    11    10 

和一个数组

Y= [0.001 0.0002 0.0004]. 

现在,我要以这样的方式绘制它:数组值应在y轴上,而矩阵值应与0.001、0.002和0.0004相对。 例如,对于单行, y=0.001, A(1,1)=1, y=0.0002, B(1,1)=2 y=0.0004, C(1,1)=1

同样c(i,j)使用循环将A(i,j),B(i,j)c(i,j)点用于在单个图形上绘制所有线的过程。

谢谢

那么,第一个图是plot([1,2,1],Y) ,下一个是plot([2,3,2],Y)等等?

如果是这样,您可以那样做

X = cat(3,cat(3,A,B),C);
X = reshape(permute(X,[3,1,2]),3,9);
plot(X,Y,'--x');

给出这样的情节:

结果图

这是您要找的东西吗? 如果不是,我对您的问题不太了解,请您改一下。

您可以创建3D数组(张量)并循环访问。

T(:,:,1) = A;
T(:,:,2) = B;
T(:,:,3) = C;

figure;
for idi = 1:size(A,1)
    for idj = 1:size(A,2)
        plot(squeeze(T(idi,idj,:)).',Y); hold on;
    end
end

访问三维空间并不是最快的操作(因为它们没有顺序存储在内存中),如果矩阵较大,则可以考虑reshape

我不了解您是否希望向量Y在x轴或y轴上(这些图对我来说都不有意义),但是我确信您可以根据需要从此处修改代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM