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

MATLAB条件数组赋值逻辑验证及无循环Python实现咨询

问题解答

你的理解完全正确

这段MATLAB代码的核心逻辑就是布尔索引赋值:逐个对比b和g对应位置的元素,当b[index] < g[index]时,将H对应位置的元素更新为2*100 - H[index]。从运行结果也能验证这一点:

  • 索引0:b[0]=5 < g[0]=9,所以H[0] = 200 -10 =190
  • 索引4:b[4]=22 < g[4]=30,所以H[4] =200-50=150
    其余位置不满足条件,H元素保持不变。

Python中无需循环的实现方式

可以借助numpy库的向量运算和布尔索引特性,实现和MATLAB完全一致的逻辑,不需要手动遍历索引:

import numpy as np

H = np.array([10, 20, 30, 40, 50, 60])
b = np.array([5, 9, 28, 59, 22, 18])
g = np.array([9, 9, 10, 25, 30, 5])

# 布尔索引赋值
H[b < g] = 2 * 100 - H[b < g]

print(H)

运行这段代码会输出:[190 20 30 40 150 60],和MATLAB的结果一致。

内容的提问来源于stack exchange,提问作者KEZIA ANGELINE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:34:59