空向量轉化為0的向量化方法?

時間 2021-05-11 23:35:42

1樓:winner245

可以利用空向量求和得到0,還有一種非常類似的應用是根據空向量得到1,方法是對空向量求連乘得到1。

例如:sum() == 0, prod() == 1如果是0xn或nx0的向量v,則求和或求積之前先轉成列向量,例如:

v = rand(0, 100);

sum(v(:))

prod(v(:))

才看到還有「否則,保持不變」的要求,以上做法無法滿足這一要求

2樓:王贇 Maigo

這是我想出的奇技淫巧:

[v, zeros(isempty(v))];

如果 v 本來是空向量,那麼它將與 zeros(1) 連線,得到 0;

如果 v 本來不空,那麼它將與 zeros(0) 連線,內容不變。

3樓:

之前 MATLAB 有什麼奇技淫巧?裡說的構建 iff 的方法就不說了,可以試試看:

ones(1

,~isempty(x

))*x(:)

不過這樣顯然會把行向量也轉化成列向量,如果要陣列(不是向量也可以)和原來維度嚴格一致的話,下邊的方法應該可以(感覺應該會有更簡單和開銷更小的方法哈):

reshape

(ones(1

,~isempty(x

))*x(:),

max(1,

min(

numel(x

),size(x

))))

不過這樣寫可讀性和效能都不好,建議還是用 local function 的形式來定義之後在要使用匿名函式的地方使用 function_handle

4樓:大灰灰老師

等我換個電腦…

換好了。先定義函式

iif=

@(varargin

)varargin],1

,'first'

)}();

然後定義

init = @(v) iif(isempty(v), 0, true, v);

你就會得到

>> init()

ans =

0>> init([1, 2, 3])

ans =

1 2 3

是這個意思嗎?

為什麼向量的內積是標量,而向量的外積是向量?

Trebor 用愛因斯坦的記號可能會清晰一點。表示乙個向量與乙個一次形式的縮合,可以理解為 與 的內積。而外積則是 是兩個一次形式與全反對稱張量的縮合。它的本質其實是楔積而三維空間中,二次形式正好有 個分量,與一次形式相同。我們就可以把它們都射到 上。實際上這削弱了協變與逆變的區分,同時,也導致了 ...

為什麼兩個空間向量的向量積為法線向量?

磁気特性 某綠書委委屈屈。簡單來說,向量積可以是法線向量,但法線向量未必就是向量積。這個問題其實是 我們想量化法線,需要用向量積來表示。什麼情況下我們需要量化法線?相信對這個問題感到疑惑的人大多是從空間向量點法式方程過來的。舉個例子 有A 2,1,4 B 1,3 2 C 0,2,3 這樣三個點,根據...

怎麼理解相關向量機(RVM)中的相關向量?

西貝 Tipping RVM的作者 說RVM是一種用於回歸和分類的貝葉斯稀疏核算法,和SVM很像,但是避免了SVM的諸多缺點。例如,SVM無法計算樣本輸出的後驗概率分布,SVM不太適用於多分類問題,SVM的超引數需要通過交叉驗證得到,這就非常耗費時間,而且SVM的核函式必須是正定的。而RVM卻避免了...