使用离散化误差:本边缘必须一个向量,是真实的,数字或逻辑,单调递增。

5视图(30天)
你好,
我有下面的代码:
N =元素个数(newdata);
split_newdata =细胞(1,N);
split_newdata_mean =细胞(1,N);
2 = 1:N
temp =重塑([newdata {2} {:}], [], 2);
idx =离散化(临时(:1),[0 split_points_noID (ii):)正]);
split_newdata {2} = groupsummary(临时(:,2)、idx @ (x) {x});
split_newdata_mean {2} = cellfun (@ (x)的意思是(x,“omitnan”),split_newdata {2});
结束
但我继续得到错误:
错误使用离散化
本边缘必须一个向量,是真实的,数字或逻辑,单调递增。
错误CRM_analysis(第167行)
idx =离散化(临时(:1),[0 split_points_noID (ii):)正]);
在这里我附上了两个文件。实际上我想分裂的单个细胞 newdata 根据截止点的牛 split_points_noID 。如果这是有意义的。
谢谢你的帮助!
* *编辑:
我得到一个很奇怪的不完整split_newdata(见文件)。

接受的答案

沃斯
沃斯 2022年12月15日
负载newdata
负载split_points_noID
不是每一行 split_points_noID 是单调递增的,因为有时有些落后0吗
disp (split_points_noID)
128 138 194 617 76 92 155 978 62 68 124 152 67 71 83 155 67 79 122 433 199 208 269 0 68 77 89 143 83 88 196 322 71 76 123 180 135 194 256 692 133 149 196 241 67 71 125 186 92 134 193 373 121 142 242 363 65 70 91 200 62 151 1162 73 128 198 1171 26 34 80 335 71 88 88 0 79 85 142 370 87 93 145 188 76 80 0 0 83 129 198 428 86 90 133 249
修复的代码工作,这种情况下,删除每一行的0 split_points_noID ,使用逻辑索引或 非零 ,在你使用它之前 离散化 :
N =元素个数(newdata);
split_newdata =细胞(1,N);
split_newdata_mean =细胞(1,N);
2 = 1:N
temp =重塑([newdata {2} {:}], [], 2);
idx =离散化(临时(:1),[0 0 (split_points_noID (ii,:))。' Inf]);% 0
% idx =离散化(临时(:1),[0 split_points_noID (ii, split_points_noID (ii):) > 0)正]);%逻辑索引
split_newdata {2} = groupsummary(临时(:,2)、idx @ (x) {x});
split_newdata_mean {2} = cellfun (@ (x)的意思是(x,“omitnan”),split_newdata {2});
结束
4评论
史蒂文的主
史蒂文的主 2022年12月15日
如果你再遇到这个问题我会的 设置一个错误断点 和运行您的代码。当MATLAB在断点处停止,问:
issorted (split_points_noID (ii,:))
如果返回false,你需要调查什么split_points_noID行二世。

登录置评。

更多的答案(0)

类别

找到更多的在调整和重塑矩阵帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的