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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Matt J
Matt J am 30 Nov. 2020
Bearbeitet: Matt J am 30 Nov. 2020

1 Stimme

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

Weitere Antworten (1)

Nicholas Brophy
Nicholas Brophy am 30 Nov. 2020

0 Stimmen

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

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by