首页 > 解决方案 > Matlab中有一个函数可以创建矩阵,其中每个元素是矩阵索引的相同函数?

问题描述

例如,一个矩阵,其中 r 行和 c 列的每个值是

a=[r^2+c^2]

喜欢a=[1, 4; 4; 18]

或者

A=[F(r,c)]

A=[F(1,1) F(1,2) F(1,3);
   F(2,1) F(2,2) F(2,3);
   F(3,1) F(3,2) F(3,3)]

或者

A(r,c)=F(r,c)

标签: matlab

解决方案


方法一

您可以手动完成。首先,为行和列索引创建两个矩阵(假设矩阵为n x m):

R = repmat((1:n).',[1, m]); 
C = repmat((1:m),[n, 1]);

然后,根据这两个编写函数:

result = R.^2 + C.^2; % F(x,y) = x^2 + y^2

或者定义内联函数并将其应用于这两个:

F = @(x,y)(x.^2 + y.^2);
result = F(R,C);

方法二

通过@Cris Luengo,您也可以通过meshgird函数来​​完成第一部分。因此,我们可以生成RC喜欢以下内容:

[C,R] = meshgrid(1:n, 1:m) 

推荐阅读