【发布时间】:2018-12-07 09:11:56
【问题描述】:
我创建了一个函数,它返回一个二次矩阵,其每个元素是行号或列号的平方,具体取决于哪个更大 这是我的代码,但到目前为止它不起作用。 有人可以帮忙吗???
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)}
【问题讨论】:
-
n的值在哪里设置? -
我需要先指定n吗?
-
是的。它从
1循环到n。如果你不设置n,谁来说它应该在哪里结束? -
您需要阅读有关如何编写函数的文档。你有几个问题(没有真正考虑函数内部的代码):你的函数将
A作为参数,但你的函数的第一行重新定义了A...使用你没有定义的变量n.您的函数称为matrix_a,但最后您返回函数本身matrix_a....除此之外,现在考虑里面的代码,请看一下markus answer,它提供了一种替代方案,更有效和更多R方式。