r - 计算矩阵中的 nXn - R?
问题描述
我将图像转换为 0 和 1 的 100x100 矩阵。
ntile 是 nXn 选择。我正在尝试计算矩阵中有多少 2 个图块,最左边的 2 个条目是 1,最右边的两个条目是 0。
例如
[1 0]
[1 0]
关于如何开始这个的任何想法?我对 R 很陌生。非常感谢。
解决方案
您可以对尺寸等于 的较大矩阵的所有块进行子集化ntile
,然后检查块的所有元素是否与 的相应元素匹配ntile
。
#Data
set.seed(1)
m = matrix(sample(1:0, 16, TRUE), 4)
m[3, 4] = 0
ntile = rbind(1:0, 1:0)
n = dim(ntile)
ans = t(sapply(n[1]:nrow(m), function(i){
sapply(n[2]:ncol(m), function(j){
temp = m[(i- nrow(ntile) + 1):i, (j - ncol(ntile) + 1):j]
all(temp == ntile)
})
}))
ans
# [,1] [,2] [,3]
#[1,] FALSE FALSE FALSE
#[2,] FALSE FALSE FALSE
#[3,] FALSE FALSE TRUE
sum(ans)
#[1] 1
推荐阅读
- jsf - PF(...) 在远程命令中使用 from onload 或 autoRun="true" 时未定义
- c - 如何分离特定数据
- sas - 使用UPDATE折叠观察时如何保留不在BY组中的变量的原始值
- python - 如何使用 matplotlib 将线性回归绘制到线段
- android - Android 倒计时计时器到日期和下一个活动?
- javascript - JavaScript:创建返回函数的函数,其中返回的函数调用传递的函数
- javascript - 在 onChange 事件中获取按钮值
- node.js - JSON.stringify() 没有正确地将对象转换为字符串
- python - 如何更新窗口上的所有画布项目(因此,画布)调整大小?
- beacon - 如何更改我自己的 esp32-beacon 上的 TX 电源?