例如,给定 i=5
和 n=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/