MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#" onclick="window._kiq.push(['set', { 'event': 'Turn off MT' }]);">ここ</a>」をクリックしてください。

0

create a matrix with numbers from vector

Elysi Cochin さんによって質問されました 2019 年 2 月 13 日
最新アクティビティ madhan ravi
さんによって コメントされました 2019 年 2 月 13 日
i have a vector as
v = [ 1 1 1 2 2 2 3 3 4]
i wanted to create a new matrix as
M = [
1 1 1 0 0 0 0 0 0;
0 0 0 1 1 1 0 0 0;
0 0 0 0 0 0 1 1 0;
0 0 0 0 0 0 0 0 1];
how to do it?

  0 件のコメント

サインイン to comment.

3 件の回答

回答者: madhan ravi
2019 年 2 月 13 日
 採用された回答

v = [1 1 1 2 2 2 3 3 4];
u=unique(v);
R=arrayfun(@(x)v==u(x),1:numel(u),'un',0);
M=+vertcat(R{:})
Gives:
M =
1 1 1 0 0 0 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 1

  0 件のコメント

サインイン to comment.


回答者: madhan ravi
2019 年 2 月 13 日

Simpler:
M = +(v==unique(v).')

  2 件のコメント

Stephen Cobeldick
2019 年 2 月 13 日
+1 very tidy. I like that.
madhan ravi
2019 年 2 月 13 日
Thank you!

サインイン to comment.


KSSV
回答者: KSSV
2019 年 2 月 13 日

N = zeros(3,3,3) ;
for i = 1:3
N(i,:,i) = 1 ;
end
M = reshape(N,3,[])

  2 件のコメント

KSSV
2019 年 2 月 13 日
Give Example....by the way what is use of v here?
KSSV
2019 年 2 月 13 日
v = [ 1 1 1 2 2 2 3 3 4] ;
v = reshape(v,[],3)' ;
N = zeros(3,3,3) ;
for i = 1:3
N(i,:,i) = v(i,:) ;
end
M = reshape(N,3,[])

サインイン to comment.



Translated by