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

 采纳的回答

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

2 个评论

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(:)';

请先登录,再进行评论。

更多回答(1 个)

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 个评论

No need to use logical indexing , see the above illustration
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
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?

请先登录,再进行评论。

类别

帮助中心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!

Translated by