I have a 1158x1 column vector. The elements of the vector has values from 1 to 256. Each value is repeated for a maximum of 10 times. Some values are repeated even for less than 10 times. I want to convert into 10X256 matrix. I want all the 1's to be in 1st column, 2's in the second column and so on. To make it a proper matrix, fill rest of the values with zeros. The column vector is attached. How can I do that?

2 件のコメント

Stephan
Stephan 2020 年 11 月 30 日
What about the missing values? For example 141 and 144 have no occurence - wha about the corresponding columns?
pankaj singh
pankaj singh 2020 年 11 月 30 日
those columns can be filled by zeros.

サインインしてコメントする。

 採用された回答

Matt J
Matt J 2020 年 11 月 30 日
編集済み: Matt J 2020 年 11 月 30 日

1 投票

H=histcounts(coln,1:257);
result=((1:10).'<=H).*(1:256);

その他の回答 (1 件)

Nicholas Brophy
Nicholas Brophy 2020 年 11 月 30 日

0 投票

function [arr]=pankajSort(vec)
arr=zeros(10,length(vec));
for i= 1:length(vec)
mask= i==vec;
TRUES = sum(mask,'all');
for ii=1:TRUES
arr(ii,i)=i;
end
end

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

タグ

質問済み:

2020 年 11 月 30 日

回答済み:

2020 年 11 月 30 日

Community Treasure Hunt

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

Start Hunting!

Translated by