![]() |
MATLAB中的向量化
我正在尝试创建大小为121x101的向量,以使第ith列由V_t*e ,其中V_t = 1000*10^((i-1)/20) , e是121的长列。
显然, i将在1到1.01亿之间变化,但是我如何将其应用于矩阵而不仅仅产生结果的最终值(将其应用于每一列而无需重复命令)? [B]回答:[/B] 从您的问题看来,每一行都是相同的。因此,您可以使用[URL="http://www.mathworks.com/help/techdoc/ref/repmat.html"]REPMAT[/URL]来计算一行 iRow = 1:101; V_t = 1000*10.^((iRow-1)/20); V_te = repmat(V_t,121,1); 如果要使e在第1行中为1,在第2行中[URL="http://www.mathworks.com/help/techdoc/ref/ndgrid.html"]以此类推[/URL] , [URL="http://www.mathworks.com/help/techdoc/ref/ndgrid.html"]以此类推[/URL] ,则可以使用[URL="http://www.mathworks.com/help/techdoc/ref/ndgrid.html"]NDGRID[/URL]创建两个与输出大小相同的数组,其中每个元素(i,j)都包含e和i的值(i,j)的输出 [ee,ii] = ndgrid(1:121,1:101); V_te = 1000*10.^((i-1)/20) .* ee; 或者您可以使用[URL="http://www.mathworks.com/help/techdoc/ref/bsxfun.html"]BSXFUN[/URL]为您扩展e和i iRow = 1:101; V_t = 1000*10.^((iRow-1)/20); V_te = bsxfun(@times,V_t,(1:121)'); [url=https://stackoverflow.com/questions/5167462]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 05:04。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.