|
1
11
我能想到的最简单的方法是:
其中N>=m。话虽如此,如果你想使用结果向量作为“选择向量”,我不知道为什么你要按元素乘以两个向量,因为我预计这会相对缓慢和低效。如果你想得到一个只包含向量v在第m个位置的第m个值的向量,这将是一个更简单的方法:
尽管最自然的方法是:
假设b在此之前没有定义(如果b被定义,你需要使用零,而不仅仅是将第N个值赋值为零-根据我的经验,创建一个在此之前不存在的零向量或矩阵最容易通过将其最后一个元素赋值为零来完成-这对扩展矩阵或向量也很有用)。 |
![]() |
2
2
我很难想出比以下更明智的事情:
但我很乐意被证明是错的! 更新: @GlenO提供的一条龙解决方案非常简洁!然而,请注意,如果效率是主要标准,那么在我的机器上进行的一些速度测试表明,这个答案和其他两个答案中提出的简单方法要快3或4倍。。。 下一次更新: 啊!这就是你所说的“选择向量”的意思@GlenO已经很好地解释了为什么对于这种操作,一和零的向量不是惯用的Matlab——无论你选择如何构建它。
ps尽量避免使用
|
![]() |
3
2
只是为了好玩,另一句俏皮话:
|
![]() |
4
1
我可以想到:
还有一点需要注意。在MATLAB中,索引从一开始,而不是从零开始。所以你的函数调用应该是
|
![]() |
5
1
我只需创建一个零向量,然后将您喜欢的任何值更改为一:
|
![]() |
6
1
另一个应该很快的单行选项是:
|
![]() |
Y.C. · 以不同颜色打印x轴上方的y值 3 年前 |
![]() |
dd24 · 在MATLAB中逐部分执行python程序 3 年前 |
![]() |
fateme · MATLAB,神经网络 3 年前 |
![]() |
Marta · 使用*时出错-内部尺寸矩阵必须一致 7 年前 |
![]() |
Morpheus · x*x^T的Matlab符号计算 7 年前 |
![]() |
Lawa · 如果列中的一个元素等于零,则将整列设为零 7 年前 |