matlab画分段函数
a=4e6;b=3e6;GM=4e10;Gp=GM/(4/3*pi*(a^3-b^3));A=Gp*pi;%以上均只是定义的常系数x1=0:10:b;x2=b:10:a;...
a=4e6;
b=3e6;
GM=4e10;
Gp=GM/(4/3*pi*(a^3-b^3));
A=Gp*pi;
%以上均只是定义的常系数
x1=0:10:b;
x2=b:10:a;
x3=a:10:2*b;
y1=2*A*(a^2-b^2);
y2=2/3*A*(3*a^2-x2^2-2*b^3/x2);
y3=4/3*A*(a^3-b^3)/x3;
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y,'r');
这段代码老报错“Inputs must be a scalar and a square matrix.”,求解答,谢谢 展开
b=3e6;
GM=4e10;
Gp=GM/(4/3*pi*(a^3-b^3));
A=Gp*pi;
%以上均只是定义的常系数
x1=0:10:b;
x2=b:10:a;
x3=a:10:2*b;
y1=2*A*(a^2-b^2);
y2=2/3*A*(3*a^2-x2^2-2*b^3/x2);
y3=4/3*A*(a^3-b^3)/x3;
x=[x1,x2,x3];
y=[y1,y2,y3];
plot(x,y,'r');
这段代码老报错“Inputs must be a scalar and a square matrix.”,求解答,谢谢 展开
4个回答
展开全部
第一点噢,要正确了解Matlab里的 《.* ./ .^》编程的时候,多一个点少一个点,都会出现很大的不同,要看你希望的目标是什么。
你的公式,就出现“点”的问题。
还有最后一项,plot(x,y);这里x和y的矩阵元素个数要相同的,你的x大概是y的两倍吧。。。这个他就显现不了了,y和x的个数必须相同。
换一种方法,你写成,
x=[x1,x2,x3];
y=[y1,y2,y3];
n=0:300002;
m=0:600002;
plot(n,y,'r') %plot(m,x)?
%要不然
x=x(1,1:300002);
plot(x,y,'r');
不知道你所希望的结果是什么样的,写到这里。
你的公式,就出现“点”的问题。
还有最后一项,plot(x,y);这里x和y的矩阵元素个数要相同的,你的x大概是y的两倍吧。。。这个他就显现不了了,y和x的个数必须相同。
换一种方法,你写成,
x=[x1,x2,x3];
y=[y1,y2,y3];
n=0:300002;
m=0:600002;
plot(n,y,'r') %plot(m,x)?
%要不然
x=x(1,1:300002);
plot(x,y,'r');
不知道你所希望的结果是什么样的,写到这里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给所有的乘号和除号和指数符号前都加上点就不会报错了
*→.*
/→./
^→.^
*→.*
/→./
^→.^
更多追问追答
追问
的确,加上“.”后问题解决,可是运行的时候却报了另外一个错“??? Error using ==> plot
Vectors must be the same lengths.”,貌似是矩阵维数不同,这怎么解决?谢谢
追答
我就不在追加回答了,做个广告好了,
http://hi.baidu.com/ggggwhw/blog/item/1ed2d35d5130b95efaf2c07b.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我运算了下程序,倒是没出现“Inputs must be a scalar ”的错误。
倒是出现了以下问题:
??? Error using ==> mpower
Matrix must be square.
倒是出现了以下问题:
??? Error using ==> mpower
Matrix must be square.
追问
谢谢,我已经将分段函数表示为如下方式了,可是还是报错,说“??? Error using ==> times Matrix dimensions must agree.”正在写程序中,所以比较急,谢谢指教。
x=0:100000:2*b
y=(0<x<=b).*(2*A*(a^2-b^2))+(b<x<=a).*(2/3*A*(3*a^2-x2.^2-2*b^3./x2))+(a<x<=2*b).*((4/3*A*(a^3-b^3)./x3))
plot(x,y)
追答
a=4e6;
b=3e6;
GM=4e10;
Gp=GM/(4/3*pi*(a^3-b^3));
A=Gp*pi;
x1=0:100000:b;
x2=b:100000:a;
x3=a:100000:2*b;
for x1=0:100000:b
y1=2*A*(a^2-b^2);
end
y2=2/3*A*(3*a^2-x2.^2-2*b^3./x2);
y3=(4/3*A*(a^3-b^3)./x3);
x=[x1,x2,x3]
y=[y1,y2,y3]
plot(x,y,'r');
这个代码行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询