gpt4 book ai didi

matlab - 如何在 MATLAB 中使用方程式填充矩阵?

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:50 25 4
gpt4 key购买 nike

我有一个任意维度 m x n 的矩阵 A 并希望使用方程式填充它,例如,对于每个元素A 的 a_ij,i = 1,...,m 和 j=1,...,n,我想,

a_ij = i^2 + j^2。

在 Matlab 中手动填写它看起来类似于这样,

A = [1^2+1^2, 1^2+2^2, ..., 1^2+j^2, ..., 1^2+n^2;
2^2+1^2, 2^2+2^2, ..., 2^2+j^2, ..., 2^2+n^2;

.
.
.

i^2+1^2, i^2+2^2, ..., i^2+j^2, ..., i^2+n^2;

.
.
.

m^2+1^2, m^2+2^2, ..., m^2+j^2, ..., m^2+n^2]

所以前几项是:

[2, 5, 10,17,...

5, 8, 13,20,...

10,13,18,25,...

17,20,25,32,...
]

最佳答案

bsxfun 基于解决方案-

A = bsxfun(@plus,[1:m]'.^2,[1:n].^2)

bsxfun执行 array expansionsingleton dimensions 上(即元素数量等于 1 的维度)并执行 elementwise operation specified by the function handle这将是 bsxfun 的第一个输入参数打电话。

所以对于我们的案例,如果我们使用 column vector (mx1 ) 和一个 row vector (1xn) , 然后列出 bsxfun代码,这两个向量都会扩展为 2D matrices并将执行 elementwise summation of elements (因为函数句柄 - @plus),给了我们想要的 2D 输出。所有这些步骤都由 MATLAB 在内部执行。

注意:这在运行时性能方面必须非常高效,因为 bsxfun非常适合这些 expansion相关问题的定义如前所述。

关于matlab - 如何在 MATLAB 中使用方程式填充矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25885825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com