维数不对的问题
function vtb5(tf,delt)close all;clc
tf=input('tf=');
delt=input('delt=');
fid1=fopen('disp','wt');
M=5*;
C=800*;
K=10^5*;
x0=';
v0=';
bita=1/6;
md=inv(M+delt/2*C+bita*delt^2*K);
m0=inv(M);
=eig(m0*K);
diag(sqrt(F));
for t=0:delt:tf;
f=';
if t==0;xdd0=m0*(f-K*x0-C*v0);
else
xdd=md*(f-C*(v0+delt/2*xdd0)-K*(x0+delt*v0+(1/2-bita)*delt^2*xdd0));
x=md*(M*(x0+delt*v0+delt^2/3*xdd0)+C*(delt/2*x0+delt^2/3*v0+delt^3/12*xdd0)+delt^2/6*f);
xd=v0+delt/2*(xdd0+xdd);
xdd0=xdd;v0=xd;x0=x;
fprintf(fid1,'%10.4f',x0);
t
end
fid2=fopen('disp','rt');
n=tf/delt;
x=fscanf(fid2,'%f',);
t=1:n;
figure('numbertitle','off','name','weiyi of 1','pos',);
plot(t,x(1,t)),grid,xlabel('shijian*0.1'),title('x11')
figure('numbertitle','off','name','weiyi of 2','pos',);
plot(t,x(2,t)),grid,xlabel('shijian*0.1'),title('x22')
figure('numbertitle','off','name','weiyi of 3','pos',);
plot(t,x(3,t)),grid,xlabel('shijian*0.1'),title('x33')
figure('numbertitle','off','name','weiyi of 4','pos',);
plot(t,x(4,t)),grid,xlabel('shijian*0.1'),title('x44')
end
说xdd0=m0*(f-K*x0-C*v0);这儿维数不对
[ 本帖最后由 eight 于 2007-12-20 00:10 编辑 ] 原帖由 firefree 于 2007-12-19 23:25 发表 http://www.chinavib.com/forum/images/common/back.gif
function vtb5(tf,delt)
close all;clc
tf=input('tf=');
delt=input('delt=');
fid1=fopen('disp','wt');
M=5*;
C=800* ...
发帖前请先看置顶帖
回复 #1 firefree 的帖子
请贴出错提示回复 #3 sigma665 的帖子
xdd0=m0*(f-K*x0-C*v0);其中:x0:4*1
K:4*4
而你的f不是4*1
f=';
调程序要细心,更要耐心,一步一步 close all;clc
tf=input('tf=');
delt=input('delt=');
fid1=fopen('disp','wt');
M=5*;
C=800*;
K=10^5*;
x0=';
v0=';
bita=1/6;
md=inv(M+delt/2*C+bita*delt^2*K);
m0=inv(M);
=eig(m0*K);
diag(sqrt(F));
for t=0:delt:tf;
f=';
if t==0;xdd0=m0*(f-K*x0-C*v0);
else
xdd=md*(f-C*(v0+delt/2*xdd0)-K*(x0+delt*v0+(1/2-bita)*delt^2*xdd0));
x=md*(M*(x0+delt*v0+delt^2/3*xdd0)+C*(delt/2*x0+delt^2/3*v0+delt^3/12*xdd0)+delt^2/6*f);
xd=v0+delt/2*(xdd0+xdd);
xdd0=xdd;v0=xd;x0=x;
fprintf(fid1,'%10.4f',x0);
t
end
fid2=fopen('disp','rt');
n=tf/delt;
x=fscanf(fid2,'%f',);
t=1:n;
figure('name','weiyi of 1','pos',);
plot(t,x(1,t)),grid,xlabel('shijian*0.1'),title('x11')
figure('numbertitle','off','name','weiyi of 2','pos',);
plot(t,x(2,t)),grid,xlabel('shijian*0.1'),title('x22')
figure('numbertitle','off','name','weiyi of 3','pos',);
plot(t,x(3,t)),grid,xlabel('shijian*0.1'),title('x33')
figure('numbertitle','off','name','weiyi of 4','pos',);
plot(t,x(4,t)),grid,xlabel('shijian*0.1'),title('x44')
end
tf=10
delt=1
??? Index exceeds matrix dimensions.
将原程序 f=';改后,编译能过,可不让运行
楼上大牛指点下?
查过矩阵也没问题啊
回复 #5 firefree 的帖子
再帖错误信息最好全面这个问题已讨论多次,去置顶帖子里看看吧
回复 #5 firefree 的帖子
找不出来,你一行一行的输进去回复 #1 firefree 的帖子
这样的问题根源很简单,重要的是楼主及后来遇到这样的问题的人,能够静下来逐条分析自己的参数。
页:
[1]