making column of zero matrix equal to one based on another matrix
1 次查看(过去 30 天)
显示 更早的评论
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 ?
0 个评论
采纳的回答
Jos (10584)
2014-2-25
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 个评论
Jos (10584)
2014-2-26
@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
2014-2-26
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.
更多回答(1 个)
Image Analyst
2014-2-25
Did you try
A(:, B) = 1;
3 个评论
Image Analyst
2014-2-25
编辑:Image Analyst
2014-2-25
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Descriptive Statistics 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!