【问题标题】:Matlab, figures and for loopsMatlab,数字和for循环
【发布时间】:2014-09-03 10:26:32
【问题描述】:

我正在尝试绘制以下简单函数; $y=A.*x$ 具有不同的 A 参数值,即 A=0,1,2,3 都在同一个图上。我知道如何通过将 x 设置为 linspace 向量来绘制简单函数,即 $y=x$ ,因此定义 x=linspace(0,10,100);我知道可以使用 hold 命令。

我认为可以简单地使用 for 循环,但问题是在一个数字上绘制所有排列的图,即我想要一个 y=t,2*t,3*t,4* 的图t 在同一张图上。我的尝试如下:

x=linspace(0,10,100);

%Simple example
Y=x;

figure;
plot(Y);

%Extension
B=3;

F=B*x;

figure;
plot(F);

%Attempt a for loop
for A= [0,1,2,3] 
G=A*x;

end

figure;
plot(G);

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这就是我将如何绘制你的 for 循环示例:

    figure;
    hold all;
    for A=[0,1,2,3] 
        G=A*x;
        plot(G);
    end
    

    figure 创建一个新图形。 hold all 表示后续的图将出现在同一个图上(hold all 将使用不同的颜色为每个图而不是hold on)。然后我们在循环中绘制G 的每次迭代。

    您也可以不使用循环。与 Matlab 中的大多数内容一样,删除循环应该会提高性能。

    figure;
    A=[0,1,2,3];
    G=x'*A;
    plot(G);
    

    GxA 两个向量的外积(x 已转置为列向量)。 plot 用于绘制 100x4 矩阵 G 的列。

    【讨论】:

    • +1 用于解释hold allhold on 之间的区别。
    猜你喜欢
    • 1970-01-01
    • 2017-01-23
    • 2021-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多