在R中,可以使用以下步骤从二进制矩阵中提取第一个和最后一个非零行和列:
which
函数和逻辑判断条件!= 0
来找到矩阵中非零元素的索引。min
函数找到最小的非零行索引。[]
提取第一个非零行。which
函数和逻辑判断条件!= 0
来找到矩阵中非零元素的索引。max
函数找到最大的非零行索引。[]
提取最后一个非零行。which
函数和逻辑判断条件!= 0
来找到矩阵中非零元素的索引。min
函数找到最小的非零列索引。[]
提取第一个非零列。which
函数和逻辑判断条件!= 0
来找到矩阵中非零元素的索引。max
函数找到最大的非零列索引。[]
提取最后一个非零列。以下是一个示例代码:
# 创建一个示例的二进制矩阵
binary_matrix <- matrix(c(0, 0, 1, 0, 1, 1, 0, 0, 0), nrow = 3, ncol = 3, byrow = TRUE)
# 提取第一个非零行
first_nonzero_row <- min(which(binary_matrix != 0))
first_nonzero_row_values <- binary_matrix[first_nonzero_row, ]
# 提取最后一个非零行
last_nonzero_row <- max(which(binary_matrix != 0))
last_nonzero_row_values <- binary_matrix[last_nonzero_row, ]
# 提取第一个非零列
first_nonzero_col <- min(which(binary_matrix != 0, arr.ind = TRUE)[, "col"])
first_nonzero_col_values <- binary_matrix[, first_nonzero_col]
# 提取最后一个非零列
last_nonzero_col <- max(which(binary_matrix != 0, arr.ind = TRUE)[, "col"])
last_nonzero_col_values <- binary_matrix[, last_nonzero_col]
# 打印结果
print("第一个非零行:")
print(first_nonzero_row_values)
print("最后一个非零行:")
print(last_nonzero_row_values)
print("第一个非零列:")
print(first_nonzero_col_values)
print("最后一个非零列:")
print(last_nonzero_col_values)
这个代码将输出第一个和最后一个非零行和列的值。请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行适当的修改。
领取专属 10元无门槛券
手把手带您无忧上云