Randomly assign a value to each column of a matrix

1 Ansicht (letzte 30 Tage)
Peter Harrington
Peter Harrington am 17 Jun. 2019
Bearbeitet: dpb am 18 Jun. 2019
I can't figure out why this code doesn't work. I would like to have one true value in each row that is randomly assigned to a column like so
[1 0 0;
0 1 0;
1 0 1;
0 0 1]
mt = 5;
npart = 3;
seqS = false(mt, npart);
t = randi([1, 3], mt, 1);
seqS(:, t) = true; %should work, why not?
Thanks in advance,
Pete

Akzeptierte Antwort

dpb
dpb am 18 Jun. 2019
Not way subscript expansion works as written...use
seqS(sub2ind(size(seqS),[1:mt].',t)) = true;
instead
  2 Kommentare
Peter Harrington
Peter Harrington am 18 Jun. 2019
Thanks for the help, your code works great!
dpb
dpb am 18 Jun. 2019
Bearbeitet: dpb am 18 Jun. 2019
No problem, glad to help...it's one of those syntax things that superficially does look like should work as you expected but doesn't.
If would, go ahead and Accept answer if for no other reason to indicate to others there is a solution to the question. (And, while I never started this with the intent of garnering points, as of this instant, you'd be the one to hit the 10K mark... :) )

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Mathematics finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by