Matlab:获得标准基向量的简单方法?
看起来这应该很容易,但我不是专家,谷歌也没有帮助。
我想要在 Matlab 中以一种优雅的方式为 n 维空间生成标准有序基向量。例如,行为类似于以下内容:
>> [e1, e2] = SOB(2);
>> e1
e1 = 1 0
>> e2
e2 = 0 1
我希望使用 1-liner,并且实际上不想为如此简单的东西编写函数。
谢谢
It seems like this should be easy, but I'm no expert and google isn't helping.
I would like an elegant way in Matlab of producing the standard ordered basis vectors for an n-dimensional space. For example, behaviour similar to the following:
>> [e1, e2] = SOB(2);
>> e1
e1 = 1 0
>> e2
e2 = 0 1
I'm hoping for a 1-liner and don't really want to write a function for something so simple.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
为什么不
呢
A(:,i)
就是你的第 i 个基向量Why not
then
A(:,i)
is your i-th basis vector要获得单个基向量,例如
N
维中的k
标准基向量,您可以使用:1:N
生成向量1 2 ... N
,其中== k
按元素测试与k
是否相等;double
将逻辑值转换为数字。To obtain a single basis vector, say the
k
-th standard basis vector inN
dimensions, you can use:1:N
produces the vector1 2 ... N
, which== k
element-wise tests for equality withk
;double
converts the logical values to numbers.两条线可以吗?使用 EYE 创建单位矩阵,使用 < 将向量复制到元胞数组中a href="http://www.mathworks.com/help/techdoc/ref/mat2cell.html" rel="nofollow">MAT2CELL,然后使用 交易。
Would two lines be ok? Create the identity matrix with EYE, copy vectors into a cell array using MAT2CELL, then distribute them with DEAL.
如果你使用匿名函数,那就更方便了。
如果 A 的大小为 6 x 6,则返回 6 x 1 向量。
if you anonymous function, it is more convenient.
If the size of A is 6 by 6, this returns 6 by 1 vector.