如何将那段 Matlab 代码转换为 Java?
How Can I Convert That Piece of Matlab Code to Java?
我有一段 Matlab 代码,但找不到如何转换为 Java 代码。这一行是什么意思?怎么才能转换成Java?
Matlab代码:
b = all(x <= y) && any(x<y);
提示:x = [1,2,3,4,5], y = [5,4,3,2,1]
结果 b 是什么?
来自matlab官网:
A <= B returns 一个逻辑数组,其元素设置为逻辑 1(真),其中 A 小于或等于 B;否则,该元素为逻辑 0(假)。
至此你在第一次比较中有11100。
B = all(A) 沿着大小不等于 1 的 A 的第一个数组维度进行测试,并确定元素是否全部为非零或逻辑 1(真)。实际上,all 是逻辑 AND 运算符的自然扩展。
所以all(x <= y)
必须return0.
B = any(A) 沿着大小不等于 1 的 A 的第一个数组维度进行测试,并确定是否有任何元素是非零数字或逻辑 1 (true)。实际上,any 是逻辑 OR 运算符的自然扩展。
所以any(x < y)
应该是1.
&&
是 AND
剩下的就看你了
您可以像
中那样使用 Java 流
var x = new int[] {1, 2, 3, 4, 5};
var y = new int[] {5, 4, 3, 2, 1};
var b = IntStream.range(0, x.length).allMatch(i -> x[i] <= y[i])
&& IntStream.range(0, x.length).anyMatch(i -> x[i] < y[i]);
不处理尺寸不同的 x
和 y
!
我有一段 Matlab 代码,但找不到如何转换为 Java 代码。这一行是什么意思?怎么才能转换成Java?
Matlab代码:
b = all(x <= y) && any(x<y);
提示:x = [1,2,3,4,5], y = [5,4,3,2,1] 结果 b 是什么?
来自matlab官网:
A <= B returns 一个逻辑数组,其元素设置为逻辑 1(真),其中 A 小于或等于 B;否则,该元素为逻辑 0(假)。
至此你在第一次比较中有11100。
B = all(A) 沿着大小不等于 1 的 A 的第一个数组维度进行测试,并确定元素是否全部为非零或逻辑 1(真)。实际上,all 是逻辑 AND 运算符的自然扩展。
所以all(x <= y)
必须return0.
B = any(A) 沿着大小不等于 1 的 A 的第一个数组维度进行测试,并确定是否有任何元素是非零数字或逻辑 1 (true)。实际上,any 是逻辑 OR 运算符的自然扩展。
所以any(x < y)
应该是1.
&&
是 AND
剩下的就看你了
您可以像
中那样使用 Java 流var x = new int[] {1, 2, 3, 4, 5};
var y = new int[] {5, 4, 3, 2, 1};
var b = IntStream.range(0, x.length).allMatch(i -> x[i] <= y[i])
&& IntStream.range(0, x.length).anyMatch(i -> x[i] < y[i]);
不处理尺寸不同的 x
和 y
!