这似乎应该很容易,但我不是专家,谷歌没有帮助。Matlab:简单的获取标准基础矢量的方法?
我想在Matlab中生成一个n维空间的标准有序基向量的优雅方式。例如,行为类似于以下:
>> [e1, e2] = SOB(2);
>> e1
e1 = 1 0
>> e2
e2 = 0 1
我希望为1班轮,并不能真正想写的东西这么简单的功能。
谢谢
这似乎应该很容易,但我不是专家,谷歌没有帮助。Matlab:简单的获取标准基础矢量的方法?
我想在Matlab中生成一个n维空间的标准有序基向量的优雅方式。例如,行为类似于以下:
>> [e1, e2] = SOB(2);
>> e1
e1 = 1 0
>> e2
e2 = 0 1
我希望为1班轮,并不能真正想写的东西这么简单的功能。
谢谢
为什么不
A = eye(N);
然后A(:,i)
是你的第i个基向量
如果匿名函数,那就更方便了。
e = @(x) eye(size(A))(:,x);
如果A的大小乘以6,则返回6乘1的向量。
e(1) = [1;0;0;0;0;0]
为了获得单个基底矢量,说在N
尺寸k
个标准基向量,可以使用:
yourbasisvector = double(1:N == k)
1:N
产生矢量1 2 ... N
,其== k
逐元素测试与k
相等; double
将逻辑值转换为数字。
2行可以工作...虽然(对我来说)这是相当神秘:) – des4maisons 2011-01-21 02:55:42
@ des4maisons:我编辑了一下澄清。基本上,如果将基本向量组合到一个数组中,您就可以获得身份。所以我构建了身份矩阵并将其分开。 – Jonas 2011-01-21 02:58:33