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卻避免了...