這是我的問題:替代MATLAB for循環函數輸入參數
我有A = 1×N個矩陣和B = 6XN矩陣 我也有一個函數F = @(X,Y)......
我想要做的是循環A和B的值,每次F的輸入參數爲:A(1,i)和B(:,i)
Is there爲了獲得一些時間而不使用for循環的所有值的方法?
乾杯
這是我的問題:替代MATLAB for循環函數輸入參數
我有A = 1×N個矩陣和B = 6XN矩陣 我也有一個函數F = @(X,Y)......
我想要做的是循環A和B的值,每次F的輸入參數爲:A(1,i)和B(:,i)
Is there爲了獲得一些時間而不使用for循環的所有值的方法?
乾杯
隨着MATLAB循環的較新版本並不像你想象的那麼昂貴。如果你的函數F
是相對簡單的東西,可以很容易地進行矢量化,那麼你通常可以獲得比使用for循環更快的性能,但是如果F
代表一個相當複雜的操作,實際上可能需要更多的工作來嘗試使用for循環。
不知道F
實際上做了什麼,很難給你一個具體的答案。但是,除了vectorizing your operations之外,還有一些函數可用於代替某些情況下的for循環。這些的一些例子是ARRAYFUN,CELLFUN,STRUCTFUN和BSXFUN。
至於如何使用BSXFUN,讓我們說,你正在執行的操作F
涉及通過在A
相應的列中的值的B
每一列乘以一個例子。換句話說,所有i
的C(:,i) = A(1,i).*B(:,i);
。你可以這樣做,使用BSXFUN如下:
C = bsxfun(@times,B,A);