matlab 总是报错,问题不难但就是解决不了.
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/11 17:50:05
matlab 总是报错,问题不难但就是解决不了.
function [xR yR]=reference_1(t);
r=0.2165;
t=0:0.0001:0.5;
Phi=4*pi*t.^2;
x=r*cos(Phi);
y=r*sin(Phi)
x1=diff(x,t,2);
y1=diff(y,t,2);
plot(t,x1,'k');
hold on;
plot(t,y1,':k');
grid
这是报错信息,
Error using ==> diff
Difference order N must be a positive integer scalar.
Error in ==> reference_1 at 7
x1=diff(x,t,2)
function [xR yR]=reference_1(t);
r=0.2165;
t=0:0.0001:0.5;
Phi=4*pi*t.^2;
x=r*cos(Phi);
y=r*sin(Phi)
x1=diff(x,t,2);
y1=diff(y,t,2);
plot(t,x1,'k');
hold on;
plot(t,y1,':k');
grid
这是报错信息,
Error using ==> diff
Difference order N must be a positive integer scalar.
Error in ==> reference_1 at 7
x1=diff(x,t,2)
![matlab 总是报错,问题不难但就是解决不了.](/uploads/image/z/3924666-18-6.jpg?t=matlab+%E6%80%BB%E6%98%AF%E6%8A%A5%E9%94%99%2C%E9%97%AE%E9%A2%98%E4%B8%8D%E9%9A%BE%E4%BD%86%E5%B0%B1%E6%98%AF%E8%A7%A3%E5%86%B3%E4%B8%8D%E4%BA%86.)
这个到挺简单,主要原因是函数diff的使用方法问题,它本身是个关于符号运算的函数
所以中间的变量t是多余的
把
x1=diff(x,t,2);
y1=diff(y,t,2);
改为
x1=diff(x,2);
y1=diff(y,2);
问题将会得以解决
再问: 但是得到的图形,横坐标与纵坐标的刻度不是我想得到的,您还能帮忙解决下么。另外在0.5到1秒的时间内。Phi有所改变,怎么样和上述的那个合在一起,做成一个图形,求指教! function [xR yR]=reference_2(t); r=0.2165; t=0.5:0.0001:1; Phi=8*pi*t-4*pi*t.^2; x=r*cos(Phi); y=r*sin(Phi); x1=diff(x,2); y1=diff(y,2); plot(x1,'k'); hold on; plot(y1,':k'); grid
所以中间的变量t是多余的
把
x1=diff(x,t,2);
y1=diff(y,t,2);
改为
x1=diff(x,2);
y1=diff(y,2);
问题将会得以解决
再问: 但是得到的图形,横坐标与纵坐标的刻度不是我想得到的,您还能帮忙解决下么。另外在0.5到1秒的时间内。Phi有所改变,怎么样和上述的那个合在一起,做成一个图形,求指教! function [xR yR]=reference_2(t); r=0.2165; t=0.5:0.0001:1; Phi=8*pi*t-4*pi*t.^2; x=r*cos(Phi); y=r*sin(Phi); x1=diff(x,2); y1=diff(y,2); plot(x1,'k'); hold on; plot(y1,':k'); grid