How do I convert a frequency table to a single vector?
2 次查看(过去 30 天)
显示 更早的评论
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/866910/image.png)
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!
0 个评论
采纳的回答
Voss
2022-1-19
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);
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);
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);
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!