我正试着用Matlab作图。特别是,我尝试与众多的在线来源,但没有一个工作。
这是我的问题,我试图绘制表达式:y=2*(x-1)/(x-4)_K/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的声明,因为我可能会在后面修改它们。
发布于 2014-07-01 19:22:03
y=2*(x-1)./(x-4)*K*b/L;
您应该使用./
替换/
发布于 2014-07-01 19:40:44
就像hzy199411说的,你应该使用“。”操作。
我建议你输入“帮助”在MATLAB命令提示符下。MATLAB将响应大量的结果索引,但寻找“算术运算符”一节。
您也可以尝试命令"doc“,但我认为”帮助“。这更有帮助,因为至少在MATLAB 2013中,它详细列出了更多的“点”操作符。
简而言之,有几个算术运算符以'.‘为前缀。("Dot")是“逐元素”操作,因此它们对数组/矩阵的每个索引进行操作。
例如,如果您有一个数组s=1:20,并且您执行了s/s操作,那么您将得到ans = 1,就像使用s./s一样,您将得到一个长度与's‘相同的1的数组。
发布于 2014-07-01 21:38:02
我猜你是一个新的matlab用户:)。这个程序总体上没问题,但是你应该考虑一些事情。第一,
linspace
不是绘图函数。不过,这个函数很有用。使用语法,它将创建长度为1000的向量,其范围为0、1。
plot(x,y);
线条颜色和样式可以设置为
plot(x,y,'r-.');
对于预定义的颜色(此处'r-.'
表示红色虚线)。还可以找到一些其他属性,即查看绘图的联机帮助。
另外,正如其他人所说,如果您想对向量中的每个元素进行操作,请使用./
。/
是一个矩阵运算符。
https://stackoverflow.com/questions/24522306
复制