how can I change a n*1 matrix to a n*6 matrix with a condition based on column value?
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi, i'm pretty new so any help would be appreciated.
I have 700000*1 matrix with the column values that are between 1 to 6 and i want to make a new matrix of 700000*6 (having 6 colulmns instead of 1) and the values of the columns in new matrix in each row would be 1,0 in a way that 1 would show the value in the original matrix.
for example :
original =
[ 1
2
1
3
5]
and i want the new matrix look like this :
[1 0 0 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
0 0 1 0 0 0
0 0 0 0 1 0]
I've tried by making a blank 700000*6 matrix first but i can't figure out how to put values in the new matrix the way i want.
댓글 수: 0
채택된 답변
dleal
2022년 7월 28일
If you have the Statistics and Machine Learning Toolbox you can do use dummyvar:
A = [1,1,2,4,4, 5,6]';
>> dummyvar(A)
ans =
1 0 0 0 0 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 0 1 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
댓글 수: 0
추가 답변 (1개)
David Hill
2022년 7월 28일
편집: David Hill
2022년 7월 28일
n=randi(6,700000,1);
a=zeros(size(n,1),6);
a(:,n)=1;
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!