using find function and stor the filtered data in a Matrix
2 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have two columns of data. frequency and H. Now I want to find H values, which the respective frequency values belongs to predefined classess and stor them in a matrix. per say, f = (1.3; 1.4; 2.1; 2.5; 2.7; 2.8; 3.4) and H = (5;6;7;3;2;4;9). Now I want to find which H values falls in frequency classes of (1-2), (2-3), (3-4) and store them in a matrix (may be row sizes are unequal, make it equal size with rest of the elements being set to zeros). Since I have so many classes, I am hoping to do so using a for loop and find function. (expected answer is something like below with columns are representing frequency classes of (1-2), (2-3), (3-4) in order.
[5 7 9
6 3 0
0 2 0
0 4 0]
0 件のコメント
採用された回答
Dyuman Joshi
2023 年 2 月 23 日
編集済み: Dyuman Joshi
2023 年 2 月 24 日
Assuming the ranges are [1,2), [2,3) ...
f = [1.3; 1.4; 2.1; 2.5; 2.7; 2.8; 3.4];
H = [5;6;7;3;2;4;9];
arr = floor(f);
[~,m]=mode(arr);
%pre-allocation
out = zeros(m,max(arr));
%generalised approach instead of 1:max(arr)
for k = unique(arr)'
z = arr==k;
out(1:nnz(z),k)=H(z);
end
out
3 件のコメント
Dyuman Joshi
2023 年 2 月 24 日
Thanks for pointing it out, Voss. I have edited my code to rectify the mistake.
その他の回答 (0 件)
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!