Subscripted assignment dimension mismatch.
    5 ビュー (過去 30 日間)
  
       古いコメントを表示
    
function main
D=1; %L=0;
Pr=1;R=0.1;Sc=1;
xa=0;xb=6;
Lv = [-2.5:0.025:0];
p = []; 
for i=1:length(Lv)
    L = Lv(i);
    fODE = @(x,y) [y(2);  y(3);  y(2)^2-y(3)*y(1)-1;  y(5);  -3*Pr*y(1)*y(5)/(3+4*R);  y(7); -Sc*y(1)*y(7)];  
    BCres= @(ya,yb)[ya(1); ya(2)-L-D*ya(3); ya(4)-1; ya(6)-1; yb(2)-1; yb(4);yb(6)]; 
    xint=linspace(xa,xb,101);
    solinit=bvpinit(xint,[0 1 0 1 0 1 0]);
    sol=bvp4c(fODE,BCres,solinit);
    sxint=deval(sol,xint);
       %%WE NEED TO PLOT for
    S(i,1)=sxint(3,:);
      end
   figure(1)
    plot(Lv,S,'-','Linewidth',1.5); 
    xlabel('\bf \lambda');
    ylabel('\bf C_{f}');
    hold on
end
%%While running the code following ERROR occurs:
Subscripted assignment dimension mismatch.
Error in  (line 17)
    S(i,1)=sxint(3,:);
0 件のコメント
採用された回答
  Walter Roberson
      
      
 2019 年 5 月 19 日
        function all_sxint = main
    D=1; %L=0;
    Pr=1; R=0.1; Sc=1;
    xa=0;xb=6;
    Lv = [-2.5:0.025:0];
    nLv = length(Lv);
    all_sxint = cell(nLv, 1);
    S = zeros(nLv, 7);
    for i=1:nLv
        L = Lv(i);
        fODE = @(x,y) [y(2);  y(3);  y(2)^2-y(3)*y(1)-1;  y(5);  -3*Pr*y(1)*y(5)/(3+4*R);  y(7); -Sc*y(1)*y(7)];  
        BCres= @(ya,yb)[ya(1); ya(2)-L-D*ya(3); ya(4)-1; ya(6)-1; yb(2)-1; yb(4);yb(6)]; 
        xint=linspace(xa,xb,101);
        solinit=bvpinit(xint,[0 1 0 1 0 1 0]);
        sol=bvp4c(fODE,BCres,solinit);
        sxint=deval(sol,xint);
        all_sxint{i} = sxint; 
        S(i,:) = sxint(3,:);
    end
    figure(1)
    plot(Lv, S, '-', 'Linewidth', 1.5); 
    xlabel('\bf \lambda');
    ylabel('\bf C_{f}');
    legend({'bc1', 'bc2', 'bc3', 'bc4', 'bc5', 'bc6', 'bc7'})
end
Assign the output to a variable so that you can examine all of the time points for all of the Lv values afterwards, as you indicate that you need to be able to do that.
11 件のコメント
その他の回答 (1 件)
  Matt J
      
      
 2019 年 5 月 18 日
        
      編集済み: Matt J
      
      
 2019 年 5 月 18 日
  
      sxint(3,:) is not a scalar, but the left hand side S(i,1) is a scalar location.
8 件のコメント
  Walter Roberson
      
      
 2019 年 5 月 19 日
				Is there a reason you need to calculate at all of the time points, and then to store data for only the third time point? Is there a particular reason why my suggestion to calculate only at the third time point will not work for you?
参考
カテゴリ
				Help Center および File Exchange で Data Exploration についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

