一行标准基础向量创建

时间:2015-09-29 10:44:22

标签: matlab

有没有办法将以下两行流程简化为一行?

A

注意:这将获得第k个n维标准基矢量。

2 个答案:

答案 0 :(得分:4)

由于Matlab会自动填充零,您可以使用:

e([n,k])=[0,1]

请注意,当e已存在时,此行可能会产生错误的结果。要处理案例k=ne(n)=0首先出现,然后被e(k)=1

覆盖

答案 1 :(得分:1)

我不知道一行,但这是一种更有效(至少是记忆力)的方法:

e = zeros(n,1);
e(k) = 1;

此外,如果您追求优雅和可读性,那么请考虑将其封装到一个函数中:

function e = basis_vector(n,k)
    e = zeros(n,1);
    e(k) = 1;
end