有没有办法将以下两行流程简化为一行?
A
注意:这将获得第k个n维标准基矢量。
答案 0 :(得分:4)
由于Matlab会自动填充零,您可以使用:
e([n,k])=[0,1]
请注意,当e已存在时,此行可能会产生错误的结果。要处理案例k=n
,e(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