假設函數g採用函數f作爲參數,並在g內我們有類似於 x = t * feval(f,u);然而,f可以是標量值或矢量值。如果它是向量值,我們也希望x也是一個向量,即feval語句返回由f返回的整個向量。我們如何爲標量和向量情況做這項工作?Matlab - 如何使這個工作的標量和矢量
0
A
回答
0
據我所知,你問的是matlab中的默認行爲。 這意味着如果f返回一個標量,x將是一個標量,如果它返回一個向量x將是一個向量。
在你的例子中,只要t也是一個標量 - 否則結果將取決於如何評估t * [輸出f]。
例
function o1 = f(N)
o1 = zeros(1,N);
end
這裏˚F返回標如果N = 1和N> 1的向量。 調用你的代碼給
x=feval('f', 1); % Returns x = 0
x=feval('f', 4); % Returns x = [0 0 0 0]
0
如果feval(f,u)
輸出可以是標量或矢量,而你想要的結果x
是相同的(即標量或相同的長度和尺寸的向量) ,那麼它將取決於什麼t
是:
- 如果
t
是一個標量,那麼你有什麼好。您可以使用運算符*
或.*
中的任一個來執行乘法。 - 如果
t
是與feval(f,u)
的結果具有相同長度和尺寸的矢量,則使用.*
運算符執行元素方式乘法。 - 如果
t
是相同長度的矢量,但與不同尺寸從feval(f,u)
的結果(即,一個是一個行向量,一個是列矢量),則必須通過轉一個使尺寸匹配或另一個與.'
運營商。 - 如果
t
與feval(f,u)
的結果長度不同,則不能進行元素方式的乘法運算。
相關問題
- 1. Matlab - 使函數與矢量和標量一起工作
- 2. 如何在Matlab中矢量化這個商的總和
- 3. 如何從較大的矢量製作較小的矢量...? MATLAB
- 4. Matlab的 - Z(X:Y) - 矢量不工作
- 5. 如何「矢量化」這個操作?
- 6. MATLAB使用矢量
- 7. Matlab的矢量
- 8. 如何在矢量化MATLAB
- 9. Matlab的:由一個矢量
- 10. 矢量在MATLAB
- 11. MATLAB:矢量
- 12. MATLAB:矢量
- 13. 與矢量MATLAB
- 14. MATLAB矢量
- 15. 這個單向熱轉換矢量如何工作?
- 16. 矢量化這個循環
- 17. MATLAB:總和變量矢量數
- 18. 3個矢量Matlab 3d圖
- 19. Matlab矢量化:如何避免這個「for」循環?
- 20. 如何使用matlab標準化具有負值的矢量?
- 21. 如何使用MATLAB內插圖像上的矢量座標?
- 22. MATLAB - 轉換矢量單元矢量
- 23. Matlab與四維陣列的每個矢量工作
- 24. MATLAB使用行和列索引矢量
- 25. 這個變量是如何工作的
- 26. 矢量如果在matlab
- 27. Matlab,矢量比較和如果循環
- 28. 標準矢量和增強矢量的push_back:哪個更快?
- 29. MATLAB - 矢量腳本
- 30. Matlab陣列,矢量
不,它不適用於我:function [o1 o2] = f(t,y) o1 = y(2); o2 = -sin(y(1)); end然後我打電話> x = feval('f',1,[1 1]) x = 任何想法?被卡在這一個 – Glup 2011-04-20 19:28:23
我想我知道了,我應該有函數x = f(t,y)作爲方法簽名,即x而不是[01,02] – Glup 2011-04-20 19:32:55
@glup:實際上,對於第一個函數定義,x會簡單地給予o1的價值 - 但這個問題已經回答[這裏](http://stackoverflow.com/questions/5734858/matlab-bug-with-multiple-inputs)。 – jmetz 2011-04-20 20:04:20