انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کمک در خصوص رفع خطای متلب

کمک در خصوص رفع خطای متلب

#1
با سلام 
آیا کسی از دوستان میتونه بنده را در مورد خطای matrix dimensions must agree راهنمایی کنه؟
کد متلب:

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
خطا مربوط به خطی هستش که به رنگ آبی دراومده.ماتریس E یک ماتریس 1 در 2 و ماتریس A یک ماتریس 1در 11 هستش که چون قراره به هم تقسیم بشه و ابعادشون همخوانی ندارد این خطا نشان داده میشه.بنده M فایل و INPUTE DATA رو هم پیوست کردم.متشکرم09133383128

دانلود INPUTING DATA1.xlsx

نام فایل INPUTING DATA1.xlsx
نوع فایل .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   
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان