1
我試圖創建一個大小爲121x101的向量,這樣第i列由V_t*e
組成,其中V_t = 1000*10^((i-1)/20)
和e
是一列121列。在MATLAB中的向量化
顯然i
是從1變化到1.01億,但我如何將它應用到矩陣中,而不會在結果中產生最終值(將這個值應用到每列沒有重複命令)?
我試圖創建一個大小爲121x101的向量,這樣第i列由V_t*e
組成,其中V_t = 1000*10^((i-1)/20)
和e
是一列121列。在MATLAB中的向量化
顯然i
是從1變化到1.01億,但我如何將它應用到矩陣中,而不會在結果中產生最終值(將這個值應用到每列沒有重複命令)?
從你的問題來看,它看起來每行都是一樣的。因此,你可以計算爲
iRow = 1:101;
V_t = 1000*10.^((iRow-1)/20);
V_te = repmat(V_t,121,1);
使用REPMAT一行。如果你想有e
行2,等等,你可以使用NDGRID創建大小相同的兩個陣列爲1行1,2輸出,該輸出包含的e
和i
的值的輸出的每一個元素(i,j)
[ee,ii] = ndgrid(1:121,1:101);
V_te = 1000*10.^((i-1)/20) .* ee;
或者可以使用BSXFUN做e
和i
膨脹爲你
iRow = 1:101;
V_t = 1000*10.^((iRow-1)/20);
V_te = bsxfun(@times,V_t,(1:121)');
是的,每一行都是一樣的。這似乎工作,謝謝。出於某種原因,當我嘗試計算V_t之前,它不接受我(現在的iRow)變量,因爲它試圖計算一個標量。我認爲某種分段函數(。)是必要的,而不是在哪裏。再次感謝。 – alan 2011-03-02 13:23:08
@alan:不客氣。如果在代數表達式中使用數組,總是使用'.'運算符是最安全的。 – Jonas 2011-03-02 13:33:25