You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Octave中如何获取两个4×4矩阵逐元素取最小值的来源矩阵?

解决Octave中逐元素最小值来源矩阵的判断问题

嘿,这个需求其实用Octave的逻辑判断就能轻松实现,我给你两种实用的方法,按需选择就行:

方法一:用数值标记来源(简洁高效)

我们可以直接通过逻辑比较生成一个和原矩阵同维度的标记矩阵,比如用1代表最小值来自矩阵A,0代表来自矩阵B:

% 先定义题目中的两个矩阵
A = [ 3, 2, 4, 5; 1, 2, 0, 6; 9, 8, 5, 4; 0, 1, 0, 3 ];
B = [ 1, 1, 6, 8; 0, 4, 6, 3; 5, 6, 7, 1; 0, 2, 3, 4 ];

% 生成标记矩阵:A元素小于等于B时标记为1(来源A),否则为0(来源B)
source_flag = (A <= B);

运行后得到的source_flag矩阵是:

0   0   1   1
   0   1   1   0
   0   0   1   0
   1   1   1   1

完全对应min(A,B)的结果:比如第一行第一个元素最小值是B的1,对应标记0;最后一行所有元素的最小值都来自A,对应全1。

注意:如果遇到A和B元素相等的情况(比如最后一行第一个元素都是0),这个逻辑会把它归为来源A。如果想把相等的情况归为B,只需要把判断条件改成A < B即可。

方法二:用字符标记来源(直观易懂)

如果觉得数值标记不够直观,我们可以生成字符矩阵,直接用'A'和'B'标注来源:

% 先创建一个全为'B'的字符矩阵,尺寸和A、B一致
source_char = repmat('B', size(A));
% 把A元素小于等于B的位置替换为'A'
source_char(A <= B) = 'A';

运行后得到的source_char矩阵是:

B   B   A   A
B   A   A   B
B   B   A   B
A   A   A   A

这个结果一眼就能看出每个最小值来自哪个矩阵,非常直观。

两种方法都能完美解决你的需求,根据自己的使用场景选就行~

内容的提问来源于stack exchange,提问作者Santosh Kr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:58:14