gpt4 book ai didi

ruby - 如何使用 Ruby 交换矩阵中的列和行

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:51 26 4
gpt4 key购买 nike

我想做的就是使用 while 循环将 matrix[i][j]matrix[j][i] 交换。为什么这行不通?

def my_transpose(matrix)

new_matrix = []

i = 0
j = 0

while i < matrix.size
new_matrix[i] = []
while j < matrix.size
new_matrix[i] << matrix[j][i]
j += 1
end
i += 1
end

return new_matrix
end

如果我用类似的东西运行它

[
[1,2,3],
[1,2,3],
[1,2,3]
]

它只返回 1,1,1。我如何让它返回 1,1,1; 2,2,2; 3,3,3

最佳答案

如果您的问题是如何使用 Ruby 交换矩阵中的列和行,答案是使用内置的 Array#transpose

a = [
[1,2,3],
[1,2,3],
[1,2,3]
]
#=> [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
a.transpose
#=> [[1, 1, 1], [2, 2, 2], [3, 3, 3]]

关于ruby - 如何使用 Ruby 交换矩阵中的列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19237804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com