create a matrix with a for loop
    7 次查看(过去 30 天)
  
       显示 更早的评论
    
Hello all, i am trying to calculate a bunch of matrices using a for loop. I have written the following code
T = 60;
for t = 60:60:12940
    phi(:,t) = [(n1(1,t+T)-n2(1,t+T)) / (n1(1,t)-n2(1,t)), (n3(1,t+T)-n4(1,t+T)) / (n3(2,t)-n4(2,t)); (n1(2,t+T)-n2(2,t+T)) / (n1(1,t)-n2(1,t)), (n3(2,t+T)-n4(2,t+T)) / (n3(2,t)-n4(2,t))];
end 
i am getting an error code that says the left side of the equation is a 2-by-1 and the right side is a 2-by-2. both sides of the equation are supposed to be a 2-by-2!
How would i go about writing the left side of the eqution so it would work with the for loop and result in a 2-by-2?
Thanks for any help!
0 个评论
采纳的回答
  KSSV
      
      
 2020-6-18
        
      编辑:KSSV
      
      
 2020-6-18
  
      T = 60;
phi = cell([],1) ; 
count = 0 ; 
for t = 60:60:12940
    count = count+1 ; 
    phi{count} = [(n1(1,t+T)-n2(1,t+T)) / (n1(1,t)-n2(1,t)), (n3(1,t+T)-n4(1,t+T)) / (n3(2,t)-n4(2,t)); (n1(2,t+T)-n2(2,t+T)) / (n1(1,t)-n2(1,t)), (n3(2,t+T)-n4(2,t+T)) / (n3(2,t)-n4(2,t))];
end 
If you think that always the RHS is a 2x2 matrix, ot can be saved into matrix by initlaizing it into a 3D matrix. 
5 个评论
  KSSV
      
      
 2020-6-18
				Then you see...you are accessing 12940....it is clear....
You can access elements only upto index 12000....you need to change the loop indexing.
更多回答(1 个)
  madhan ravi
      
      
 2020-6-18
        T = 60;
phi = cell(numel(t),1);
t = 60:60:12940;
for k = 1:numel(t)
    phi{k} = [(n1(1,t(k)+T)-n2(1,t(k)+T)) / ...
        (n1(1,t(k))-n2(1,t(k))), (n3(1,t(k)+T)-n4(1,t(k)+T)) / ...
        (n3(2,t(k))-n4(2,t(k))); (n1(2,t(k)+T)-n2(2,t(k)+T)) / ...
        (n1(1,t(k))-n2(1,t(k))), (n3(2,t(k)+T)-n4(2,t(k)+T)) / (n3(2,t(k))-n4(2,t(k)))];
end
celldisp(phi)
phi = cat(3,phi{:})
3 个评论
  madhan ravi
      
      
 2020-6-18
				
      编辑:madhan ravi
      
      
 2020-6-18
  
			I don’t have time to get into details here but to illustrate with an example:
x = rand(2,2)% has two columns
x(1,3) % but you’re trying to access the third column, which doesn’t make sense
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


