How i can save a random value from a matrix in a variable,exluding values lower than 1?
    4 views (last 30 days)
  
       Show older comments
    
    Giannakis Stoukas
 on 22 Apr 2015
  
    
    
    
    
    Commented: Image Analyst
      
      
 on 22 Apr 2015
            I have a matrix 100X100 and i want a command to insert in variable pnode a random value of this matrix but,i want the value to be bigger than 1.For example if i have the matrix A=[4 5 2 1; 8 3 1 0] my variable pnode,can take on of the values 4,5,2,8,3 randomly
0 Comments
Accepted Answer
  Image Analyst
      
      
 on 22 Apr 2015
        Try this:
% Generate sample data
A=[4 5 2 1; 8 3 1 0] 
% Get column vector of all the elements where A > 0
A_No_Zeros = A(A > 0)
% Get a random index.
randomIndex = randi(length(A_No_Zeros), 1);
% Assign pnode the random value from A_No_Zeros.
pnode = A(randomIndex)
4 Comments
  Image Analyst
      
      
 on 22 Apr 2015
				Because once you ignore 0's and 1's in [4 5 2 1; 8 3 1 0] you are left with [4 5 2 8 3] and the minimum of that is 2. Not sure why you're surprised. However my code did not compute the minimum so that must be code you added.
More Answers (0)
See Also
Categories
				Find more on Creating and Concatenating Matrices 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!
