۱۴۰۰/۰۸/۱۱, ۱۰:۴۴ ب.ظ
با سلام
آیا کسی از دوستان میتونه بنده را در مورد خطای matrix dimensions must agree راهنمایی کنه؟
کد متلب:
disp(' Analysis of 2D Fram')
disp('***********************************************************************')
format long g
INPUT=xlsread('INPUTING DATA1.xlsx');
noe=INPUT(1,1);
non=INPUT(2,1);
%%
%//////////////////INPUTING DATA-------------------------------------------
%//////////////////Coordinate
for i=1:non
coor(:,:,i)=INPUT(i,3:4);
end
sp=find(INPUT(:,6)==1);
m=size(sp,1);
ss=INPUT(sp,7:9);
lp=find(INPUT(:,10)==1);
v=size(lp,1);
ll=INPUT(lp,11:13);
syms z
%//////////////////Elements data
for j=1:noe
fe(:,:,j)=INPUT(j,15:16);
L(j)=((coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))^2+(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))^2)^.5;
q(j)=INPUT(j,35);
qq(j)=INPUT(j,36);
m1(j)=-q(j)*L(j)^2/12;
m2(j)=-m1(j);
f1(j)=-q(j)*L(j)/2;
f2(j)=f1(j);
v1(j)=-qq(j)*L(j)/2;
v2(j)=v1(j);
F0(:,1,j)=[v1(j);f1(j);m1(j);v2(j);f2(j);m2(j)];
C(j)=(coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))/L(j);
S(j)=(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))/L(j);
CS(:,:,j)=[C(j) S(j);-S(j) C(j)];
R(:,:,j)=[CS(:,:,j) zeros(2,4);zeros(1,2) 1 zeros(1,3);zeros(2,3) CS(:,:,j) zeros(2,1);zeros(1,5) 1];
E(j)=INPUT(j,24);
G(j)=INPUT(j,25);
hw1(j)=INPUT(j,27);
hw2(j)=INPUT(j,28);
bf_u(j)=INPUT(j,29);
tf_u(j)=INPUT(j,30);
bf_d(j)=INPUT(j,32);
tf_d(j)=INPUT(j,33);
tw(j)=INPUT(j,31);
type(j)=INPUT(j,34);
alpha=hw2(j)/hw1(j)-1;
hw=hw1(j)*(1+alpha*z/L(j));
h=hw+tf_u(j)+tf_d(j);
if type(j)==1% rec
I=(1/12)*tw(j)*hw.^3;
A=tw(j)*hw;
%Ac=A;
Ac=A/1.2;
elseif type(j)==2% I
I=(1/12)*hw.^3*bf_u(j)+(2/3)*bf_u(j)*tf_u(j).^3+tf_u(j)*(hw.^2)/2+2*hw*tf_u(j)-bf_u(j)*hw.^3+hw.^3*tw(j);
A=hw*tw(j)+bf_u(j)*tf_u(j)+bf_d(j)*tf_d(j);
Ac=h*tw(j);
%Ac=A/1.2;
else% T
yp=(hw.^2*tw(j)/2+bf_u(j)*tf_u(j)*(hw+tf_u(j)/2))/(bf_u(j)*tf_u(j)+hw*tw(j));
I=(1/12)*hw^3*tw(j)+(1/12)*bf_u(j)*tf_u(j)^3+(yp-hw/2)^2*hw*tw(j)+(tf_u(j)/2+hw-yp)^2*bf_u(j)*tf_u(j);
A=hw*tw(j)+bf_u(j)*tf_u(j);
Ac=h*tw(j);
%Ac=A/1.2;
end
if alpha==0
mf11=int(1/E(j)/A,z,0,L(j));
mf22=int(z.^2/E(j)/I+1/G(j)/Ac,z,0,L(j));
mf66=int(1/E(j)/I,z,0,L(j));
mf26=int(z/E(j)/I,z,0,L(j));
else
del=(L(j))/10;
z=0:del:L(j);
fmf11=inline(1/E(j)/A);
fmf22=inline(z.^2/E(j)/I+1/G(j)/Ac);
fmf66=inline(1/E(j)/I);
fmf26=inline(z/E(j)/I);
mf11=del/3*(fmf11(0)+2*sum(fmf11(3:2:end-2))+4*sum(fmf11(2:2:end))+fmf11(end));
mf22=del/3*(fmf22(0)+2*sum(fmf22(3:2:end-2))+4*sum(fmf22(2:2:end))+fmf22(end));
mf66=del/3*(fmf66(0)+2*sum(fmf66(3:2:end-2))+4*sum(fmf66(2:2:end))+fmf66(end));
mf26=del/3*(fmf26(0)+2*sum(fmf26(3:2:end-2))+4*sum(fmf26(2:2:end))+fmf26(end));
end
آیا کسی از دوستان میتونه بنده را در مورد خطای matrix dimensions must agree راهنمایی کنه؟
کد متلب:
clear all
clcdisp(' Analysis of 2D Fram')
disp('***********************************************************************')
format long g
INPUT=xlsread('INPUTING DATA1.xlsx');
noe=INPUT(1,1);
non=INPUT(2,1);
%%
%//////////////////INPUTING DATA-------------------------------------------
%//////////////////Coordinate
for i=1:non
coor(:,:,i)=INPUT(i,3:4);
end
sp=find(INPUT(:,6)==1);
m=size(sp,1);
ss=INPUT(sp,7:9);
lp=find(INPUT(:,10)==1);
v=size(lp,1);
ll=INPUT(lp,11:13);
syms z
%//////////////////Elements data
for j=1:noe
fe(:,:,j)=INPUT(j,15:16);
L(j)=((coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))^2+(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))^2)^.5;
q(j)=INPUT(j,35);
qq(j)=INPUT(j,36);
m1(j)=-q(j)*L(j)^2/12;
m2(j)=-m1(j);
f1(j)=-q(j)*L(j)/2;
f2(j)=f1(j);
v1(j)=-qq(j)*L(j)/2;
v2(j)=v1(j);
F0(:,1,j)=[v1(j);f1(j);m1(j);v2(j);f2(j);m2(j)];
C(j)=(coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))/L(j);
S(j)=(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))/L(j);
CS(:,:,j)=[C(j) S(j);-S(j) C(j)];
R(:,:,j)=[CS(:,:,j) zeros(2,4);zeros(1,2) 1 zeros(1,3);zeros(2,3) CS(:,:,j) zeros(2,1);zeros(1,5) 1];
E(j)=INPUT(j,24);
G(j)=INPUT(j,25);
hw1(j)=INPUT(j,27);
hw2(j)=INPUT(j,28);
bf_u(j)=INPUT(j,29);
tf_u(j)=INPUT(j,30);
bf_d(j)=INPUT(j,32);
tf_d(j)=INPUT(j,33);
tw(j)=INPUT(j,31);
type(j)=INPUT(j,34);
alpha=hw2(j)/hw1(j)-1;
hw=hw1(j)*(1+alpha*z/L(j));
h=hw+tf_u(j)+tf_d(j);
if type(j)==1% rec
I=(1/12)*tw(j)*hw.^3;
A=tw(j)*hw;
%Ac=A;
Ac=A/1.2;
elseif type(j)==2% I
I=(1/12)*hw.^3*bf_u(j)+(2/3)*bf_u(j)*tf_u(j).^3+tf_u(j)*(hw.^2)/2+2*hw*tf_u(j)-bf_u(j)*hw.^3+hw.^3*tw(j);
A=hw*tw(j)+bf_u(j)*tf_u(j)+bf_d(j)*tf_d(j);
Ac=h*tw(j);
%Ac=A/1.2;
else% T
yp=(hw.^2*tw(j)/2+bf_u(j)*tf_u(j)*(hw+tf_u(j)/2))/(bf_u(j)*tf_u(j)+hw*tw(j));
I=(1/12)*hw^3*tw(j)+(1/12)*bf_u(j)*tf_u(j)^3+(yp-hw/2)^2*hw*tw(j)+(tf_u(j)/2+hw-yp)^2*bf_u(j)*tf_u(j);
A=hw*tw(j)+bf_u(j)*tf_u(j);
Ac=h*tw(j);
%Ac=A/1.2;
end
if alpha==0
mf11=int(1/E(j)/A,z,0,L(j));
mf22=int(z.^2/E(j)/I+1/G(j)/Ac,z,0,L(j));
mf66=int(1/E(j)/I,z,0,L(j));
mf26=int(z/E(j)/I,z,0,L(j));
else
del=(L(j))/10;
z=0:del:L(j);
fmf11=inline(1/E(j)/A);
fmf22=inline(z.^2/E(j)/I+1/G(j)/Ac);
fmf66=inline(1/E(j)/I);
fmf26=inline(z/E(j)/I);
mf11=del/3*(fmf11(0)+2*sum(fmf11(3:2:end-2))+4*sum(fmf11(2:2:end))+fmf11(end));
mf22=del/3*(fmf22(0)+2*sum(fmf22(3:2:end-2))+4*sum(fmf22(2:2:end))+fmf22(end));
mf66=del/3*(fmf66(0)+2*sum(fmf66(3:2:end-2))+4*sum(fmf66(2:2:end))+fmf66(end));
mf26=del/3*(fmf26(0)+2*sum(fmf26(3:2:end-2))+4*sum(fmf26(2:2:end))+fmf26(end));
end
end
خطا مربوط به خطی هستش که به رنگ آبی دراومده.ماتریس E یک ماتریس 1 در 2 و ماتریس A یک ماتریس 1در 11 هستش که چون قراره به هم تقسیم بشه و ابعادشون همخوانی ندارد این خطا نشان داده میشه.بنده M فایل و INPUTE DATA رو هم پیوست کردم.متشکرم09133383128
دانلود INPUTING DATA1.xlsx
نام فایل | INPUTING DATA1.xlsx |
|
نوع فایل | ||
دفعات دانلود | 132 | |
اندازه | 10.16 KB | |
ارسال کننده فایل | solana |
کد:
clear all
clc
disp(' Analysis of 2D Fram')
disp('***********************************************************************')
format long g
INPUT=xlsread('INPUTING DATA1.xlsx');
noe=INPUT(1,1);
non=INPUT(2,1);
%%
%//////////////////INPUTING DATA-------------------------------------------
%//////////////////Coordinate
for i=1:non
coor(:,:,i)=INPUT(i,3:4);
end
sp=find(INPUT(:,6)==1);
m=size(sp,1);
ss=INPUT(sp,7:9);
lp=find(INPUT(:,10)==1);
v=size(lp,1);
ll=INPUT(lp,11:13);
syms z
%//////////////////Elements data
for j=1:noe
fe(:,:,j)=INPUT(j,15:16);
L(j)=((coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))^2+(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))^2)^.5;
q(j)=INPUT(j,35);
qq(j)=INPUT(j,36);
m1(j)=-q(j)*L(j)^2/12;
m2(j)=-m1(j);
f1(j)=-q(j)*L(j)/2;
f2(j)=f1(j);
v1(j)=-qq(j)*L(j)/2;
v2(j)=v1(j);
F0(:,1,j)=[v1(j);f1(j);m1(j);v2(j);f2(j);m2(j)];
C(j)=(coor(1,1,fe(1,2,j))-coor(1,1,fe(1,1,j)))/L(j);
S(j)=(coor(1,2,fe(1,2,j))-coor(1,2,fe(1,1,j)))/L(j);
CS(:,:,j)=[C(j) S(j);-S(j) C(j)];
R(:,:,j)=[CS(:,:,j) zeros(2,4);zeros(1,2) 1 zeros(1,3);zeros(2,3) CS(:,:,j) zeros(2,1);zeros(1,5) 1];
E(j)=INPUT(j,24);
G(j)=INPUT(j,25);
hw1(j)=INPUT(j,27);
hw2(j)=INPUT(j,28);
bf_u(j)=INPUT(j,29);
tf_u(j)=INPUT(j,30);
bf_d(j)=INPUT(j,32);
tf_d(j)=INPUT(j,33);
tw(j)=INPUT(j,31);
type(j)=INPUT(j,34);
alpha=hw2(j)/hw1(j)-1;
hw=hw1(j)*(1+alpha*z/L(j));
h=hw+tf_u(j)+tf_d(j);
if type(j)==1% rec
I=(1/12)*tw(j)*hw.^3;
A=tw(j)*hw;
%Ac=A;
Ac=A/1.2;
elseif type(j)==2% I
I=(1/12)*hw.^3*bf_u(j)+(2/3)*bf_u(j)*tf_u(j).^3+tf_u(j)*(hw.^2)/2+2*hw*tf_u(j)-bf_u(j)*hw.^3+hw.^3*tw(j);
A=hw*tw(j)+bf_u(j)*tf_u(j)+bf_d(j)*tf_d(j);
Ac=h*tw(j);
%Ac=A/1.2;
else% T
yp=(hw.^2*tw(j)/2+bf_u(j)*tf_u(j)*(hw+tf_u(j)/2))/(bf_u(j)*tf_u(j)+hw*tw(j));
I=(1/12)*hw^3*tw(j)+(1/12)*bf_u(j)*tf_u(j)^3+(yp-hw/2)^2*hw*tw(j)+(tf_u(j)/2+hw-yp)^2*bf_u(j)*tf_u(j);
A=hw*tw(j)+bf_u(j)*tf_u(j);
Ac=h*tw(j);
%Ac=A/1.2;
end
if alpha==0
mf11=int(1/E(j)/A,z,0,L(j));
mf22=int(z.^2/E(j)/I+1/G(j)/Ac,z,0,L(j));
mf66=int(1/E(j)/I,z,0,L(j));
mf26=int(z/E(j)/I,z,0,L(j));
else
del=(L(j))/10;
z=0:del:L(j);
fmf11=inline(1/E(j)/A);
fmf22=inline(z.^2/E(j)/I+1/G(j)/Ac);
fmf66=inline(1/E(j)/I);
fmf26=inline(z/E(j)/I);
mf11=del/3*(fmf11(0)+2*sum(fmf11(3:2:end-2))+4*sum(fmf11(2:2:end))+fmf11(end));
mf22=del/3*(fmf22(0)+2*sum(fmf22(3:2:end-2))+4*sum(fmf22(2:2:end))+fmf22(end));
mf66=del/3*(fmf66(0)+2*sum(fmf66(3:2:end-2))+4*sum(fmf66(2:2:end))+fmf66(end));
mf26=del/3*(fmf26(0)+2*sum(fmf26(3:2:end-2))+4*sum(fmf26(2:2:end))+fmf26(end));
end
end