??? Subscripted assignment dimension mismatch
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
how do I fix this assignment error?
lambdaMJ = 7.2;                               
MJ_Flow = (30/60)*2;                                                                 
A = 100;                                  
B = 1;                                  
C = 70;                                      
D = 4;                                    
E = C + D;                       
F = A - C - D;     
MJ_start=0;                            
for a=1:100            
Num_cylces = 1;
XMJ=(poissrnd(lambdaMJ, A, Num_cylces));
lambdaMJ_sec(a) = mean(XMJ)/10;
% 
FMJ_cars_wait = @(T11,MJ_V11) (lambdaMJ_sec(a));
[T11,MJ_V11] = ode45(FMJ_cars_wait,[0,F],MJ_start);
R_G_MJ = MJ_V11(end:end);
%
FMJ_cars_wait_2 = @(T12,MJ_V12) (lambdaMJ_sec(a) - MJ_Flow);
[T12,MJ_V12] = ode45(FMJ_cars_wait_2,[F,A],R_G_MJ);
%
Major_end(a)=MJ_V12(end); 
MJ_start=MJ_V12(end);          
if MJ_start < 0            
    MJ_start=0;
else
    MJ_start=MJ_start; 
end
%   
Major1(:,a) = MJ_V11; 
end
??? Subscripted assignment dimension mismatch.
Error in ==> Untitled2 at 30
Major1(:,a) = MJ_V11;
0 个评论
采纳的回答
  Cedric
      
      
 2013-10-5
        
      编辑:Cedric
      
      
 2013-10-5
  
      First:
 doc interp1
and once you understand roughly what it does and its input parameters, I guess that you could modify your code a little bit as follows (untested):
lambdaMJ = 7.2;                               
MJ_Flow = (30/60)*2;
A = 100;                                  
B = 1;                                  
C = 70;                                      
D = 4;                                    
E = C + D;                       
F = A - C - D;     
MJ_start=0;
% NEW
n            = 100 ;
step         = 0.5 ;
tGrid        = (0:step:F).' ;
lambdaMJ_sec = zeros(1, n) ;
Major_end    = zeros(1, n) ;
Major1       = zeros(length(tGrid), n) ;
for a = 1:n                               % Updated: upper bound.
Num_cylces = 1;
XMJ=(poissrnd(lambdaMJ, A, Num_cylces));
lambdaMJ_sec(a) = mean(XMJ)/10;
% 
FMJ_cars_wait = @(T11,MJ_V11) (lambdaMJ_sec(a));
[T11,MJ_V11] = ode45(FMJ_cars_wait,[0,F],MJ_start);
R_G_MJ = MJ_V11(end:end);
%
FMJ_cars_wait_2 = @(T12,MJ_V12) (lambdaMJ_sec(a) - MJ_Flow);
[T12,MJ_V12] = ode45(FMJ_cars_wait_2,[F,A],R_G_MJ);
%
Major_end(a)=MJ_V12(end); 
MJ_start=MJ_V12(end);          
if MJ_start < 0            
    MJ_start=0;
end                                              % Updated: no else clause.
%   
Major1(:,a) = interp1(T11, MJ_V11, tGrid);       % Updated: interpolate.
end
2 个评论
更多回答(1 个)
  Matt J
      
      
 2013-10-5
        
      编辑:Matt J
      
      
 2013-10-5
  
      Make MJ_V11 the same size as Major1(:,a)
5 个评论
  Image Analyst
      
      
 2013-10-5
				Matt, we went over all that in his original question http://www.mathworks.com/matlabcentral/answers/89151-how-to-find-a-mean-across-rows. I told him you can't stick a whole vector into a single element. Not sure why he abandoned that discussion, and asked all over again here.
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!