matlab - 如何处理涉及三个向量的索引?
问题描述
我有以下三个向量:
trans_now=[1 2 4]; data2send=[1 0 0 1]; datasent=[0 0 0 0];
我想datasent
为1
那些属于tran_now
其成员且data2send
状态为1
. 例如 4 是 的成员,trans_now
因此data2send(4)
应该1
设置datasent(4)
为1
。
我可以使用 for 循环和 if 语句来做到这一点,如下面的代码所示。
for i=1:length(trans_now)
if data2send(trans_now(i))==1
datasent(trans_now(i))=1;
end
end
但是我想要一个班轮代码。我试过的一个班轮代码是
req_sent(req2send(trans_now)==1)=1;
但它不起作用。输出应将datasent
向量设置为[1 0 0 1]
。
解决方案
你可以通过两种方式解决这个问题:
1.
data_sent(trans_now) = data2send(trans_now)
输出是:
数据发送 = 1 0 0 1
在此解决方案中,我假设 的所有初始值data_sent
都以 as 开头,0
并且您需要分配一次。
2.
datasent(intersect(find(data2send == 1), trans_now)) = 1
输出是:
数据发送 = 1 0 0 1
在这个解决方案中,没有使用任何假设,您只分配索引,data2send == 1
并且也出现在trans_now
推荐阅读
- power-automate - 如何根据共享收件箱中的新电子邮件在 Azure DevOps 中创建 WorkItem,但对电子邮件的回复仍在同一任务中
- angular - 角度http TypeError:无法读取未定义的属性'get'
- html - 如何在 CSS 或 HTML 中的黑色或白色框内添加一个圆圈
- r - 使用 Rcurl 重命名 FTP 中的文件
- angular - 向 ngx-material-keyboard 添加箭头键
- ios - 3rd 方分析库如何仅通过导入其库来跟踪屏幕视图
- html - 在反应页面底部显示横幅
- python - 使用 matplotlib inline 但执行完成时不要调用 flush_figures
- arrays - 无法将 ftell 函数的返回值分配给 char 数组大小
- google-apps-script - 用于隐藏在 onEdit() 上不起作用的列的 Google 表格脚本