這似乎應該很容易,但我不是專家,谷歌沒有幫助。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