我试图用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声明,因为我可能会改变它们。
答案 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-.'
表示红色虚线)。还有一些额外的属性可以检查绘图的在线帮助。
正如其他人所说,如果你想对向量中的每个元素进行操作,请使用./
。 /
是一个矩阵运算符。