gpt4 book ai didi

matlab - 创建索引为 1 的向量的最惯用方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 20:09:40 25 4
gpt4 key购买 nike

在 Matlab 中,假设我想创建一个长度为 L 的 0 向量,除了在索引 i 处有一个 1?

例如,像这样的东西:

>> mostlyzeros(6, 3)

ans =

0 0 1 0 0 0

目的是我可以将它用作“选择”向量,我将按元素与另一个向量相乘。

最佳答案

我能想到的最简单的方法是:

a = (1:N)==m;

其中 N>=m。话虽如此,如果您想将生成的向量用作“选择向量”,我不知道为什么要按元素将两个向量相乘,因为我预计这样做会相对缓慢且效率低下。如果你想得到一个只包含向量 v 在第 m 个位置的第 m 个值的向量,这将是一个更直接的方法:

b = ((1:N)==m)*v(m);

虽然最自然的方法必须是这样的:

b(N)=0;
b(m)=v(m);

假设 b 在此之前没有定义(如果 b 被定义,你需要使用零而不是仅仅将第 N 个值指定为零——我的经验是创建一个不存在的零向量或矩阵在此之前最容易通过将它的最后一个元素分配为零来完成 - 它对于扩展矩阵或向量也很有用)。

关于matlab - 创建索引为 1 的向量的最惯用方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com