函数返回R中的二次矩阵

-2 r matrix

我创建了一个函数,它返回一个二次矩阵,每个元素都是行或列号的平方,这取决于哪个更大,这是我的代码,但到目前为止它不起作用.任何人都可以帮忙????

matrix_a = function(A) {A = matrix(data = 0, nrow = n, ncol = n) for (i in 1:n) {
for (j in 1:n) {
  if (i>=j) {A[i,j] = (i^2)} 
  if (i<j) {A[i,j] = (j^2)}
}} return(matrix_a)}
Run Code Online (Sandbox Code Playgroud)

mar*_*kus 6

你可以做到

n <- 3
mat <- matrix(nrow = n, ncol = n)
pmax(row(mat), col(mat)) ^ 2
#     [,1] [,2] [,3]
#[1,]    1    4    9
#[2,]    4    4    9
#[3,]    9    9    9
Run Code Online (Sandbox Code Playgroud)

把它变成一个功能

f1 = function(n = 2) {
  mat <- matrix(nrow = n, ncol = n)
  pmax(row(mat), col(mat)) ^ 2
}

f1()
#     [,1] [,2]
#[1,]    1    4
#[2,]    4    4
Run Code Online (Sandbox Code Playgroud)