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

基于索引的替换:如何按条件更新prob向量并保留未变换元素?

解决方案

你可以直接利用已得到的逻辑索引 index 完成批量赋值,无需额外循环操作,具体代码如下:

% 你已完成的步骤
index = rawRT > 0;
prob_temp = prob(index);
prob_transform = your_transform_function(prob_temp); % 替换为你的实际变换函数

% 核心替换操作
prob(index) = prob_transform;

原理说明

  • 逻辑索引 index 标记了所有rawRT>0的位置,执行 prob(index) = prob_transform 时,Matlab会自动将prob_transform的元素按顺序对应到prob中index为true的位置。
  • 所有index为false的位置(即rawRT=0对应的prob元素)会保持原有值不变,完全匹配你的需求。

举个小型验证示例:
假设:

rawRT = [354; 521; 0; 428];
prob = [0.82; 0.75; 0.59; 0.27];
index = rawRT > 0; % 得到 [true; true; false; true]
prob_temp = prob(index); % 得到 [0.82; 0.75; 0.27]
prob_transform = prob_temp * 2; % 示例变换:数值翻倍,得到 [1.64; 1.5; 0.54]
prob(index) = prob_transform;

执行后prob会变为:

1.64
1.50
0.59
0.54

可见第3个元素(对应rawRT=0)确实保留了原值。

内容的提问来源于stack exchange,提问作者A.Rainer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:35:29