making column of zero matrix equal to one based on another matrix

1 vue (au cours des 30 derniers jours)
Sukuchha
Sukuchha le 25 Fév 2014
Commenté : Image Analyst le 26 Fév 2014
Hi ,
I have a zero matrix (A) of size mxn where m in number of observation and n number of feature. I have another non zero matrix (B) of size (mx1) where numbers respresent column in matrix A which should be replaced by one.
How to do this ?

Réponse acceptée

Jos (10584)
Jos (10584) le 25 Fév 2014
Perhaps you want to set in a row K of A, the entry in column B(k) to one?
%data
A = zeros(3,3)
B = [3; 1; 2] % column index
% engine
R = 1:numel(B) % row index
idx = sub2ind(size(A), R, B) % convert to linear indices into A
A(idx) = 1
Note that the statement A(R,B) = 1 does not do what you might think it should do.
  5 commentaires
Jos (10584)
Jos (10584) le 26 Fév 2014
@Image Analyst My apologies, I should have tested the code properly, rather than write it down theoretically.
@Sukuchha, I am glad you solved this issue yourself.
Image Analyst
Image Analyst le 26 Fév 2014
No problem - I sometimes post untested code off the top of my head also, and mistakes do happen. Actually I'm kind of impressed that you (1) actually figured out what he meant, and (2) thought up that somewhat cryptic solution off the top of your head.

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 25 Fév 2014
Did you try
A(:, B) = 1;
  3 commentaires
Paul
Paul le 25 Fév 2014
Modifié(e) : Paul le 25 Fév 2014
Well, that is what you said you want. Since all three the column indices are present in B, all values of A are set to 1.
Image Analyst
Image Analyst le 25 Fév 2014
Modifié(e) : Image Analyst le 25 Fév 2014
I agree with Paul. You said any column number of A that shows up in B should have that entire column of A set to 1. For example:
A = randi(9, 5, 8) % Random integers
B = [1,3,7]; % Set columns 1, 3, and 7 to all 1's.
A(:, B) = 1

Connectez-vous pour commenter.

Catégories

En savoir plus sur Descriptive Statistics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by