Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MATLAB中的向量化

我正在尝试创建大小为121x101的向量,以使第ith列由V_t*e ,其中V_t = 1000*10^((i-1)/20) , e是121的长列。

显然, i将在1到1.01亿之间变化,但是我如何将其应用于矩阵而不仅仅产生结果的最终值(将其应用于每一列而无需重复命令)?



回答:

从您的问题看来,每一行都是相同的。因此,您可以使用REPMAT来计算一行

iRow = 1:101; V_t = 1000*10.^((iRow-1)/20); V_te = repmat(V_t,121,1); 如果要使e在第1行中为1,在第2行中以此类推以此类推 ,则可以使用NDGRID创建两个与输出大小相同的数组,其中每个元素(i,j)都包含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)');

更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:05


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.