How do I convert a frequency table to a single vector?

2 vues (au cours des 30 derniers jours)
Aaron Goodman
Aaron Goodman le 19 Jan 2022
Commenté : Aaron Goodman le 19 Jan 2022
I have the following frequecy table where Column 1 is a parameter I am measuring, and column 2 is the number of times that parameter occurred:
I would like to convert this to a single vector:
x = [3 4 4 4 4 4 4 4 4 6 23]
so I can perform statistical tests on the data. Does anyone have a simple solution?
Thank you!

Réponse acceptée

Voss
Voss le 19 Jan 2022
First, setting up the variable as you have it:
Blank2 = zeros(23,2);
Blank2(:,1) = 1:23;
Blank2(3,2) = 1;
Blank2(4,2) = 8;
Blank2(6,2) = 1;
Blank2(23,2) = 1;
display(Blank2);
Blank2 = 23×2
1 0 2 0 3 1 4 8 5 0 6 1 7 0 8 0 9 0 10 0
One way is to use arrayfun() to operate on the elements of each column:
x = arrayfun(@(x,y)x*ones(1,y),Blank2(:,1),Blank2(:,2),'UniformOutput',false);
x = [x{:}];
display(x);
x = 1×11
3 4 4 4 4 4 4 4 4 6 23
Another equivalent way using a for loop:
x = [];
for i = 1:size(Blank2,1)
x = [x Blank2(i,1)*ones(1,Blank2(i,2))];
end
display(x);
x = 1×11
3 4 4 4 4 4 4 4 4 6 23

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by