R语言矩阵编程求助:实现双2x2矩阵四则运算交互程序
嘿,这题我熟!刚好帮你写了一个完整的R程序,完美匹配你的需求——从用户手里获取两个2x2矩阵的数值,选择运算类型,最后输出清晰的运算记录。直接看代码吧:
# 第一步:获取用户输入的两个2x2矩阵 cat("请输入第一个2x2矩阵的4个数值(空格分隔):\n") mat1_values <- scan(nmax = 4) mat1 <- matrix(mat1_values, nrow = 2, ncol = 2, byrow = TRUE) cat("\n请输入第二个2x2矩阵的4个数值(空格分隔):\n") mat2_values <- scan(nmax = 4) mat2 <- matrix(mat2_values, nrow = 2, ncol = 2, byrow = TRUE) # 第二步:让用户选择运算类型 cat("\n请选择要执行的运算:\n") cat("1. 加法\n2. 减法\n3. 矩阵乘法\n4. 元素-wise除法\n") operation_choice <- as.integer(readline(prompt = "输入选项编号(1-4):")) # 第三步:执行运算并生成结果 result <- NULL operation_name <- "" switch(operation_choice, {result <- mat1 + mat2; operation_name <- "加法"}, {result <- mat1 - mat2; operation_name <- "减法"}, {result <- mat1 %*% mat2; operation_name <- "矩阵乘法"}, {result <- mat1 / mat2; operation_name <- "元素-wise除法"} ) # 第四步:输出完整运算记录 cat("\n==================== 运算记录 ====================\n") cat("第一个矩阵:\n") print(mat1) cat("\n第二个矩阵:\n") print(mat2) cat("\n执行运算:", operation_name, "\n") cat("\n运算结果:\n") print(result) cat("=================================================\n")
代码细节说明:
- 用
scan()获取用户输入的数值,matrix()把一维向量转成2x2矩阵,byrow=TRUE让输入的数值按行填充,符合日常输入习惯。 - 用
readline()获取运算选择,switch()根据选择执行对应运算——这里特意区分了矩阵乘法(用%*%,线性代数标准矩阵乘法)和元素-wise除法(用/,每个位置元素对应相除),你可以根据需求调整。 - 最后用
cat()和print()配合输出清晰的运算记录,格式和你要的示例风格一致。
测试示例效果:
比如输入第一个矩阵1 2 3 4,第二个矩阵5 6 7 8,选择加法,程序会输出:
==================== 运算记录 ==================== 第一个矩阵: [,1] [,2] [1,] 1 2 [2,] 3 4 第二个矩阵: [,1] [,2] [1,] 5 6 [2,] 7 8 执行运算: 加法 运算结果: [,1] [,2] [1,] 6 8 [2,] 10 12 =================================================
如果有哪里需要调整(比如改成矩阵逆除法,或者调整输出格式),直接改对应部分就行~
内容的提问来源于stack exchange,提问作者Christopher
相关产品推荐
相关产品推荐

