我的数据是这样的,X和Y是缺陷的中心。我想在矩阵中指定缺陷。
defect_ID X Y X_range Y_range
1 2 3 5 0
2 7 12 1 2
我创建了一个只有0的矩阵200*200。我想通过以下方式将1放入矩阵中:
每个坐标X Y都是1。例如,我们可以看到ID 1,它将允许1到坐标(2,3)的单元格。ID 2将允许1进入我的手机(7,12)。
我已经用代码完成了这项工作
img<-matrix(0,200,200)
img[cbind(data[,X],data[,Y])]<-1
现在我想做一些棘手的事情。我defect_ID,我想使用我的X_range和Y_range值将值1分配给这个缺陷周围的所有点。对于1个缺陷,我们取中心(X,Y),并使用X和Y_range移动。
伪码
for defect_ID 1
img[X,Y]<-1
img[X+ 1:X_range,Y]<-1
img[X,Y+1:Y_range]<-1
例如,如果我们看ID 1,我想给点(2,3)、(3,3)、(4,3)、(5,3)、(6,3)、(7,3)赋值1
如果我有X_范围和Y_范围
这里有一个选择:
data <- tibble(defect_ID=c(1,2),X=c(2,7),Y=c(3,12),X_range=c(5,1),Y_range=c(0,2))
输入数据:
> data
# A tibble: 2 x 5
defect_ID X Y X_range Y_range
<dbl> <dbl> <dbl> <dbl> <dbl>
1 1 2 3 5 0
2 2 7 12 1 2
创建矩阵:
data_mat <- matrix(0,200,200)
分配一个:
for (i in 1:2) { # Change this to the length of your dataset
data_mat[data[[i,'X']]:data[[i,'X']]+data[[i,'X_range']],data[[i,'Y']]] <- 1
data_mat[data[[i,'X']],data[[i,'Y']]:data[[i,'Y']]+data[[i,'Y_range']]] <- 1
}
输出:
> data_mat[1:10,1:14]
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[2,] 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[3,] 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[4,] 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[5,] 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[6,] 0 0 1 0 0 0 0 0 0 0 0 0 0 0
[7,] 0 0 1 0 0 0 0 0 0 0 0 1 1 1
[8,] 0 0 0 0 0 0 0 0 0 0 0 1 0 0
[9,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[10,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
img = matrix(0,20,15)
for (i in 1:nrow(data)){
sx = data$X[i]:(data$X[i]+data$Y_range[i])
sy = data$Y[i]:(data$Y[i]+data$X_range[i])
img[sx,sy] = 1
}
这至少应该适用于第一部分。第二个问题我不太清楚。如果范围是奇数呢?我应该选择哪个方向?
矩阵和魔方 在MATLAB里,矩阵由数字行列构成。有时也指1*1矩阵,它是标量,而一行或一列的矩阵指代向量。MATLAB有另外一些存储数字与非数字数据的方法,但在开始的阶段,最好将一切以矩阵看待。MATLAB内的操作被设计得尽可能接近自然语言。别的程序设计语言以一次处理一个数据,MATLAB则让你简单而快捷地处理一整个矩阵。有一个贯穿此书的很好的例子,它出现在德国的一个艺术家兼业余数学爱好者阿布列
研究了一种算法,该算法需要计算矩阵中连续1的最长数。提供的解决方案描述和解决方案如下: 蛮力方法非常简单。我们直接遍历给定矩阵中的每一条有效线:即水平、垂直、中间对角线上下的对角线、中间反对角线上下的反对角线。每次遍历过程中,如果遇到连续的1,我们会不断增加计数。我们会为遇到的任何不连续重置计数。在这样做的同时,我们还跟踪迄今为止发现的最大计数。 复杂性分析 时间复杂度:O(n^2)我们沿着整个矩
我目前正在做一个音频信号处理项目,需要在Java中的一个复杂矩阵上使用SVD。我当前的线性代数库是Apache Commons。但它只提供实矩阵的SVD,JAMA、JBLAS、EJML、ojAlgo都不支持复杂的SVD。 我一直在用一些技巧从一个等效的实矩阵中找到SVD。然而,当我重建矩阵时,这种技术对于虚部有很大的不准确性。
本文向大家介绍Python中的Numpy矩阵操作,包括了Python中的Numpy矩阵操作的使用技巧和注意事项,需要的朋友参考一下 Numpy 通过观察Python的自有数据类型,我们可以发现Python原生并不提供多维数组的操作,那么为了处理矩阵,就需要使用第三方提供的相关的包。 NumPy 是一个非常优秀的提供矩阵操作的包。NumPy的主要目标,就是提供多维数组,从而实现矩阵操作。 NumPy
我不是高级R用户。我主要用它来进行矩阵代数计算。我有一个大矩阵(9400×9400;675.1MB),我想反转。我尝试了“解决”函数和“胆量2inv”,我得到了“错误在......‘a’一定是一个复杂的矩阵”。我也尝试了从MASS包的ginv函数,我得到了错误消息在svd(X)错误:无限或丢失值在'x'。我确信我的矩阵没有空(全零)列或行。我检查了使用:从数据框中删除具有零值的列,我得到了相同的矩
着色器语言中通过关键字mat2、mat3、mat4分别声明一个2x2矩阵、3x3矩阵、4x4矩阵,通过内置函数mat2()、mat3()、mat4()分别创建一个2x2矩阵、3x3矩阵、4x4矩阵。 关键字 数据类型 mat2 2x2矩阵,4个元素 mat3 3x3矩阵,9个元素 mat4 4x4矩阵,16个元素 声明变量 关键子mat4声明一个4x4矩阵 mat4 matrix4; 构造函数赋