How to assign value in an array depending on the index stated in another array
Ältere Kommentare anzeigen
Hi all,
After performing some processing, now the variable 'a' contains [2 5 9].
Let say i have another variable 'b', variable 'b' is pre-initialized to be zero depending on a length of input, let say 10. b = [0 0 0 0 0 0 0 0 0 0];
What I want is, the elements that are stated in variable 'a' should be set ONE in variable 'b'. b= [0 1 0 0 1 0 0 0 1 0]
How could I do this in Matlab? Appreciate any idea, thanks
Akzeptierte Antwort
Weitere Antworten (1)
Jos (10584)
am 17 Feb. 2014
Welcome to the world of indexing!
Your problem:
a = [2 5 9]
b = [0 0 0 0 0 0 0 0 0 0];
b(a) = 1
Other interesting indexing things:
a = [1 3 7]
b = [0 0 0 ];
b(a) = 1 % automatic expansion of b
a = [2 2 2 2]
b = [0 0 0 0]
b(a) = 1 % no adding up ...
4 Kommentare
want2know
am 17 Feb. 2014
Jos (10584)
am 17 Feb. 2014
This means that values of a are not real positive integers. Think about this, e.g. when a = 2.13;
What should the 2.13th element of b be?
You can often use round to obtain meaningful indices ...
want2know
am 17 Feb. 2014
Image Analyst
am 17 Feb. 2014
What does all this show
a
class(a)
whos a
min(a(:))
max(a(:))
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!