how to formulate logical matrix in a loop?

i am having a matrix and want to separate them in the depending on its value
A=[1,2,3,4,5,6,7,8,9,10]
expected result are
idx1=[1,0,0,0,0,0,0,0,0,0] % for 1
...
idx10=[0,0,0,0,0,0,0,0,0,1] % for 10

 Accepted Answer

A = 1:10;
idx = A(:) == A(:)'

2 Comments

what should i change to have a 5 rows with a step of 2
what should i change to have a 5 rows with a step of 2
?
A = 1:2:10;
idx = A(:) == A(:)';

Sign in to comment.

More Answers (1)

madhan ravi
madhan ravi on 24 Oct 2018
Edited: madhan ravi on 24 Oct 2018
A=[1,2,3,4,5,6,7,8,9,10]
RESULT = zeros(1,numel(A));
RESULT1= RESULT;
for i = 1:numel(A)
idx(i)=A(i)==1;
idx1(i)=A(i)==10;
end
RESULT(idx) = A(idx)
RESULT1(idx1) = A(idx1)

10 Comments

No need to use logical indexing , see the above illustration
how can form a loop for this?
See the edited answer ,problem solved!
A=[1,2,3,4,5,6,7,8,9,10]
idy=zeros(1,length(A));
for i=1:1:10
idx22=find(A >=(i) & A<(i+1));
idy(i,idx22)=1;
end
madhan ravi
madhan ravi on 24 Oct 2018
Edited: madhan ravi on 24 Oct 2018
hows this related to the question??? what did you do in the above comment?
i have created a array
in which at evry row the numbers are indexed in a step of 1
from this array i can use evry row as a vector
and important is that, its done in a loop so i do not have to repeat the operation 100 times
try the updated code to get a clear idea
I know but you don’t have Use a loop
A=[1,2,3,4,5,6,7,8,9,10]
idy=zeros(1,length(A));
for i=1:1:10
idx22=find(A >=(i) & A<(i+1));
idy(i,idx22)=1;
end
what do you mean by the above code?
What should be the result after the loop?

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!