![]() |
MATLAB:根据规范从现有矩阵创建新矩阵
假设我们有以下数据:
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个间隔: [LIST][*]矩阵1:第一个间隔包含20到40之间的H值[*]矩阵2:第二个间隔包含40到60之间的H值[*]矩阵3:第三个间隔包含60到80之间的H值[/LIST]重要的是,相应的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] 实际上,这是一个简单的示例,通过根据规格创建新矩阵很容易,但是在我的值中,我有成千上万个数字,因此很难做到这一点。 [B]回答:[/B] 这是一个快速的解决方案 [~,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 [url=https://stackoverflow.com/questions/3114302]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 03:01。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.