MATLAB: Best function instead of for loop and if loop

arraycell arraysfor loopif statementMATLABmatrix

I believe for loop and if condition sometimes not the best option for the computer RAM and Memory.
Is there any function can do my job at least avoiding for loop and if condition or at least one of them?
The job is:
Assume I have this array A.
A=[1 2 6; 1 2 2; 1 2 3]
I want to save the values of the last column of the array A in a new array 'Show', when Only if the values of the last column of array A is between 2 and 5. Other elements less or above the condition will be 0 in array Show.
Is there anyway suggest for the solution please?

Best Answer

  • HG-NU - try something like
    A=[1 2 6; 1 2 2; 1 2 3];
    Show = A(:,end); % <---- get the last column of A
    Show(Show < 2 | Show > 5) = 0; % <---- use logical indexing to set elements outside of (2,5) to zero