【发布时间】:2015-11-14 01:26:58
【问题描述】:
我的问题如下:假设我们有一个二次n*n矩阵,例如
m <- matrix(runif(n^2), n,n)
现在我想定义一个函数f=function(k),它返回所有矩阵条目的总和,其中它们的行数和列数的总和弱超过k。例如,考虑 3*3 矩阵
m.ex <- matrix(1:9, 3,3, byrow = T)
看起来像
1 2 3
4 5 6
7 8 9
那么 f(2) 应该给出 45 = 1+2+3+4+5+6+7+8+9 (对于矩阵中的每个条目,行和列位置的总和弱超过2) , f(4) = 38 = 3+5+6+7+8+9 (因为位置 (1,3), (2,2), (2,3) 的行和列位置之和弱超过 4 )、(3,1)、(3,2) 和 (3,3)),并且 f(5) = 23 = 6 + 8 + 9(因为行和列位置的总和弱超过 5 的位置(2,3)、(3,2) 和 (3,3))。等等。
【问题讨论】:
-
你已经尝试过什么?而且 - 原谅我的无知 - 数字 h 什么时候弱超过数字 k?
-
我目前正在解决这个问题(我需要这个作为模拟中的子功能),所以我还没有尝试太多。显然,我可以通过循环来做到这一点,但我正在寻找更优雅(更快)的东西。如果 h >= k,则数字 h 弱于数字 k。
-
啊...抱歉...在您关于不想使用循环的评论出现之前,我发布了带有循环的快速而肮脏的解决方案。我再看看。
-
没关系,我仍然非常感谢您的意见。感谢您试一试!
-
这个和this关系很密切