为什么我的Matlab图中没有任何效果?

时间:2014-07-02 03:14:23

标签: matlab matlab-figure

我试图用Matlab绘图。特别是,我尝试了许多在线资源,但没有一个工作。

这是我的问题,我试图绘制表达式:y = 2 *(x-1)/(x-4) K b / L,我对范围感兴趣x在0和1之间。

    K=40;
    b=20;
    L=0.5;
    x=linspace(0,1,1000);
    y=2*(x-1)/(x-4)*K*b/L;

但它返回:

    y=275.01

我知道linspace不是正确的绘图方式。我该如何绘制这个功能?我想保留K,b,L声明,因为我可能会改变它们。

3 个答案:

答案 0 :(得分:1)

y=2*(x-1)./(x-4)*K*b/L;您应该使用./替换/

答案 1 :(得分:1)

就像hzy199411所说,你应该使用"。"操作。

我建议您输入" help。"在MATLAB命令提示符下。 MATLAB将使用大量结果索引进行响应,但要查找"算术运算符"部分。

您也可以尝试命令" doc arith"但我认为"帮助。"更有帮助,因为至少在MATLAB 2013中它详细列出了更多" dot"运算符。

简而言之,几个算术运算符前缀为'。' (" Dot")是"逐个元素"操作,因此它们对数组/矩阵的每个索引进行操作。

例如,如果你有一个数组s = 1:20并且你执行了s / s操作,你会得到ans = 1,就好像你做了s./s你得到的数组是1' s与' s'具有相同的长度。

答案 2 :(得分:1)

我猜你是一个新的matlab用户:)。该程序一般都可以,但你应该想到一些事情。首先,

linspace不是绘图功能。该功能虽然有用。使用您的语法,它会创建一个长度为1000且范围为[0,1]的向量。对于绘图,请键入:

plot(x,y);

Linecolor和样式可以设置为

plot(x,y,'r-.');

对于预定义颜色(此处'r-.'表示红色虚线)。还有一些额外的属性可以检查绘图的在线帮助。

正如其他人所说,如果你想对向量中的每个元素进行操作,请使用.//是一个矩阵运算符。