第 i 个位置为 1 的 n 向量的 Matlab/Octave 单线

标签 matlab octave

例如,给定 i=5n=8,我想生成 [0;0;0;0;1;0; 0;0]。具体来说,我想生成向量 v 以便:

v = zeros(n,1);
v(i) = 1;

有没有一种(合理的)方法可以在一行中做到这一点?

最佳答案

另一种解决方案:

I = eye(n);

v = I(:, i);

实际上,您可以使用从 1 到 n 的数字向量 y 并为每个元素获取这样的向量:

v = I(:, y);

你可以看到我的blog post有关此通用解决方案的详细信息。

关于第 i 个位置为 1 的 n 向量的 Matlab/Octave 单线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10876109/

相关文章:

matlab - MATLAB 或 Octave 的自动压痕清洁器?

php - National Instruments USB 6008 和 Linux

matlab - 点数如何改变 MATLAB 中的 FFT

matlab - Matlab中的图像处理/恢复

matlab - Octave 的矢量解包

Octave 3 与 4 脚本兼容性;可执行 Octave 程序的真实文档在哪里

matlab - Matlab中如何判断一个点是否在指定多边形内?

matlab - Octave/MATLAB 绘制数字信号

Matlab - 看似简单的指令导致高CPU负载

Octave 5.1.0 不再支持将数字复制到剪贴板