matlab 多变量赋值数值到函数
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/10 13:03:41
matlab 多变量赋值数值到函数
t=0:0.1:2*pi
x=r1*cos(t);y=r1*sin(t)
m=5x+3y
问题1:要生成矩阵[x;y;m]
问题2:绘制(x,y,m)的图像
t=0:0.1:2*pi
x=r1*cos(t);y=r1*sin(t)
m=5x+3y
问题1:要生成矩阵[x;y;m]
问题2:绘制(x,y,m)的图像
取r1=3,参考代码:r1=3;
t=0:0.1:2*pi;
x=r1*cos(t);y=r1*sin(t);m=5*x+3*y;
M = [x;y;m]; % 要生成矩阵[x;y;m]
plot3(x,y,m) % 绘制(x,y,m)的图像
grid on
xlabel('x');ylabel('y');zlabel('m')
再问: 请看原版问题 t=0:0.1:2*pi d=100;r2=10 f1=@(x,y)(r2.*x.^2 + r2.*y.^2 + d.*r2.*x).^(1/2))/(d.^2 + 2.*d.*x + x.^2 + y.^2); 注:f1中*全是点乘,^全是对前面的一个变量做幂运算 问题1:f1中哪些“.”是多余的 问题2:其中[x;y]为2*N的矩阵,求[x;y;f1]矩阵
再答: 1、既然d和r2是标量,涉及到这两个变量以及标量常数的“.”就可以删掉(用红色标出): f1=@(x,y)(r2.*x.^2 + r2.*y.^2 + d.*r2.*x).^(1/2))/(d.^2 + 2.*d.*x + x.^2 + y.^2);
2、问题说的不太清楚,究竟是有x、y这两个变量,还是一个[x;y]组成的矩阵?如果是前者,那再简单不过了:[x;y;f1(x,y)]。如果是后者,那这个矩阵总应该有个名字吧?设这个矩阵是M,那么表达式就是 [ M; f1(M(1,:),M(2,:)) ]。
再问: 谢谢,我刚搞matlab 2天,很多地方不明白 x取2*N矩阵第一行的值,y取2*N矩阵对应第二行的值 那么f1的值该如何表达?
再答: 上面不是已经写了吗:f1(M(1,:),M(2,:))
再问: 为什么输入f1(M(1,:),M(2,:))后,f1只有一个值?
再答: 匿名函数的表达式有错:(1)多半个括号;(2)除法应该用点除。 f1=@(x,y)(r2*x.^2 + r2*y.^2 + d*r2*x).^(1/2))/(d^2 + 2*d*x + x.^2 + y.^2);改为f1=@(x,y)(r2*x.^2 + r2*y.^2 + d*r2*x).^(1/2)./(d^2 + 2*d*x + x.^2 + y.^2);
t=0:0.1:2*pi;
x=r1*cos(t);y=r1*sin(t);m=5*x+3*y;
M = [x;y;m]; % 要生成矩阵[x;y;m]
plot3(x,y,m) % 绘制(x,y,m)的图像
grid on
xlabel('x');ylabel('y');zlabel('m')
再问: 请看原版问题 t=0:0.1:2*pi d=100;r2=10 f1=@(x,y)(r2.*x.^2 + r2.*y.^2 + d.*r2.*x).^(1/2))/(d.^2 + 2.*d.*x + x.^2 + y.^2); 注:f1中*全是点乘,^全是对前面的一个变量做幂运算 问题1:f1中哪些“.”是多余的 问题2:其中[x;y]为2*N的矩阵,求[x;y;f1]矩阵
再答: 1、既然d和r2是标量,涉及到这两个变量以及标量常数的“.”就可以删掉(用红色标出): f1=@(x,y)(r2.*x.^2 + r2.*y.^2 + d.*r2.*x).^(1/2))/(d.^2 + 2.*d.*x + x.^2 + y.^2);
2、问题说的不太清楚,究竟是有x、y这两个变量,还是一个[x;y]组成的矩阵?如果是前者,那再简单不过了:[x;y;f1(x,y)]。如果是后者,那这个矩阵总应该有个名字吧?设这个矩阵是M,那么表达式就是 [ M; f1(M(1,:),M(2,:)) ]。
再问: 谢谢,我刚搞matlab 2天,很多地方不明白 x取2*N矩阵第一行的值,y取2*N矩阵对应第二行的值 那么f1的值该如何表达?
再答: 上面不是已经写了吗:f1(M(1,:),M(2,:))
再问: 为什么输入f1(M(1,:),M(2,:))后,f1只有一个值?
再答: 匿名函数的表达式有错:(1)多半个括号;(2)除法应该用点除。 f1=@(x,y)(r2*x.^2 + r2*y.^2 + d*r2*x).^(1/2))/(d^2 + 2*d*x + x.^2 + y.^2);改为f1=@(x,y)(r2*x.^2 + r2*y.^2 + d*r2*x).^(1/2)./(d^2 + 2*d*x + x.^2 + y.^2);