为什么逻辑指标隐式地重塑?有解决方案吗?
17日视图(30天)
显示旧的评论
我遇到过几次,它总是困扰我。例如我想和矩阵的每一行,值小于0.5:
一个=兰德(3);
B = 0(大小(A));
B (< 0.5) = (< 0.5);
row_sum = (B, 2)之和;
但是我感觉应该能简化这个问题,可以这样说:
row_sum =总和((< 0.5),2);
但这显然失败了因为< 0.5保持形状,一个向量(< 0.5)返回一个< 0.5矩阵的隐式线性化。
我为什么发生这种情况(0.5 >元素将在一个矩阵定义),但似乎不协调与逻辑指数是如何呈现给用户一种保形操作。毕竟,< 0.5返回一个逻辑矩阵和您需要调用找到(< 0.5)来访问线性指数用于生成一个(< 0.5)。
依我拙见,似乎这正是南应该存在。如果默认行为(< 0.5)返回NaN(> 0.5),然后与“omitnan”功能和默认启用会产生更直观的结果。我遗漏了什么东西?
回到地球,上面有实际可行的方法来简化过程?
接受的答案
Jakeb Chouinard
2021年8月3日
编辑:Jakeb Chouinard
2021年8月3日
假设修改是不允许的,我觉得你接近你需要最简单的方法去做。
你也可以做一些类似:
一个=兰德(3);
B =一个;
B (B < 0.5) = 0;%或南,如果这是优先
和(B) 2)
或者:
一个=兰德(3);
cmpMatrix = > = 0.5;%比较矩阵
总和(a * cmpMatrix, 2)
2的评论
Jakeb Chouinard
2021年8月3日
编辑:Jakeb Chouinard
2021年8月3日
的精神!至少这样你使用更少的空间,如果你需要再次调用比较矩阵,你最好让它存储。就因为我知道插件更愿意回答有问题被关闭一次,你可以选择我的回答作为一个公认的答案吗?
干杯!