loop with two variables
    3 views (last 30 days)
  
       Show older comments
    
    Ilias Minas
 on 9 Jul 2019
  
    
    
    
    
    Commented: Walter Roberson
      
      
 on 25 Jul 2019
            Hello,
I am trying to write a code to do a loop with two variables.
I am solving the characteristic equation of a polynomial using the command root and i am taking the eigenvalues.
I want to change two variables (a and b) and do a loop. For every value of b calculate the eigenvalues at the range of a.
For example for a=0:1:3
                        b=0:1:3
And finally give me the results in a seperate matrix or vector.
Currently i am using arrayfun but only for one variable(a)
How can i do it?
Thank you
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 9 Jul 2019
        
      Edited: Walter Roberson
      
      
 on 9 Jul 2019
  
      avals=0:3;
bvals=0:3;
Numa=length(avals) ;
Numb=length(bvals) ;
Result=cell(Numa, Numb) ;
for aidx = 1:Numa
  a = avals(aidx) ;
  for bidx = 1:Numb
    b = bvals(bidx) ;
    Array=something involving a and b
    Result{aidx, bidx} = eig(Array) ;
  end
end
3 Comments
  Walter Roberson
      
      
 on 25 Jul 2019
				av=0:1:3;
bv=0:1:3;
cv=0:1:3;
[A, B, C] = ndgrid(av, bv, cv);
result = arrayfun(@(a,b,c) FunctionOfThreeVariables(a,b,c), A, B, C)
If the function returns a non-scalar, then add 'uniform', 0 as an option to get a cell array of results.
More Answers (0)
See Also
Categories
				Find more on Loops and Conditional Statements in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!