我正在尝试使用此代码创建绘图:
ms = 0.47675;
mp = 0.00095;
d = 0.2990;
g = 9.81;
l = 0.579;
R = [0.515 0.437 0.361 0.283 0.203 0.1209];
theta=[0.1585 0.1325 0.1090 0.0870 0.0615 0.0360];
T = [1.234 1.232 1.231 1.233 1.230 1.230];
M=ms+mp;
for y=1:length(R);
l(y)=(1/12)*ms*l^2+ms*d^2+mp*R(y)^2;
h(y)=d*(1-cos(theta(y)));
w(y)=sqrt(2*M*g*h(y)/l(y));
vp(y)=(2*g*M*d*T(y)*sin(theta(y)/2))/(mp*R(y)*2*pi);
pf(y)=mp*vp(y);
pe(y)=M*d*w(y);
Ee(y)=M*g*h(y);
Ef(y)=(mp*vp(y)^2)/2;
Ediff(y)=Ee(y)-Ef(y);
pdiff(y)=pe(y)-pf(y);
end
plot(R,Ediff '*')
title'skillnad mellan 'totala energi f?re och efter st?t'
xlabel 'Avst?nd mellan pilens tr?ffpunkt och rot.axel(m)'
ylabel "\Delta'E(J)'
axis ([0 0.6 -0.4 -0.3])
但我一直收到错误:
使用^输入时出错必须是标量和方阵。至 计算elementwise POWER,改用POWER(。^)。
如果有人可以帮助我,并告诉我我的代码有什么问题
答案 0 :(得分:0)
看看这里:http://au.mathworks.com/matlabcentral/answers/11845-trouble-with-basic-plotting
'^'运算符告诉MATLAB执行一次操作,它不能在矩阵上执行。 '。^'运算符告诉MATLAB对矩阵中的每个元素执行操作。