假设我们有以下数据:
H_T = [36 66 21 65 52 67 73; 31 23 19 33 36 39 42]
P = [40 38 39 40 35 32 37]
使用MATLAB 7.0,我想创建三个具有以下属性的新矩阵:
矩阵H
(矩阵H_T
中的第一部分)将被划分为3个区间:
H
值H
值H
值重要的是,相应的T
和P
也会包含在新的矩阵中,这意味着H
将根据上面定义的规范控制新的矩阵。
因此,结果矩阵将是:
H_T_1 = [36 21; 31 19]
P_1 = [40 39]
H_T_2 = [52; 36]
P_2 = [35]
H_T_3 = [66 65 67 73; 23 33 39 42]
P_3 = [38 40 32 37]
实际上,这是一个简单的例子,通过根据规范创建新矩阵很容易,但在我的值中我有数千个数字,这使得它很难做到。
答案 0 :(得分:2)
这是一个快速解决方案
[~,bins] = histc(H_T(1,:), [20 40 60 80]);
outHT = cell(3,1);
outP = cell(3,1);
for i=1:3
idx = (bins == i);
outHT{i} = H_T(:,idx);
outP{i} = P(idx);
end
然后您访问矩阵:
>> outHT{3}
ans =
66 65 67 73
23 33 39 42
>> outP{3}
ans =
38 40 32 37