des*_*ons 6 matlab linear-algebra
看起来这应该很容易,但我不是专家,谷歌没有帮助.
我想在Matlab中以优雅的方式为n维空间生成标准有序基矢量.例如,行为类似于以下内容:
>> [e1, e2] = SOB(2);
>> e1
e1 = 1 0
>> e2
e2 = 0 1
Run Code Online (Sandbox Code Playgroud)
我希望有一个1-liner并且不想真正想要为这么简单的东西编写函数.
谢谢
要获得单个基向量,例如维度中的k第 -th 个标准基向量N,您可以使用:
yourbasisvector = double(1:N == k)
Run Code Online (Sandbox Code Playgroud)
1:N产生向量1 2 ... N,它按== k元素测试与 的相等性k;double将逻辑值转换为数字。
两条线可以吗?使用EYE创建单位矩阵,使用MAT2CELL将向量复制到元胞数组中,然后使用DEAL分配它们。
tmp = mat2cell(eye(N),N,ones(N,1));
[e1,e2,...,eN] = deal(tmp{:})
Run Code Online (Sandbox Code Playgroud)