Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:42   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 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个间隔:
  • 矩阵1:第一个间隔包含20到40之间的H值
  • 矩阵2:第二个间隔包含40到60之间的H值
  • 矩阵3:第三个间隔包含60到80之间的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] 实际上,这是一个简单的示例,通过根据规格创建新矩阵很容易,但是在我的值中,我有成千上万个数字,因此很难做到这一点。



回答:

这是一个快速的解决方案

[~,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

更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 03:10


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.