1
這是我第一次與Julia在30分鐘內。逆序排列/診斷矩陣julia
目標是找出矩陣的兩個對角線(左上角 - >右下角和右上角 - >左下角)的內容。 Julia對我來說是新手,所以我的方法是顛倒原始矩陣的列,以便我可以在兩者上使用diag
函數。
以下代碼重新排列列。
state = [ 0 1 2; 1 2 0; 0 2 1]
result = zeros(3,3)
for col=[1:3]
result[:, col] = state[:,4-col]
end
我可以確認代碼做我想做的事情。
> println(state)
[0 1 2
1 2 0
0 2 1]
> println(result)
[2.0 1.0 0.0
0.0 2.0 1.0
1.0 2.0 0.0]
而且我可以找到我想要的兩個對角線。
> println(diag(state))
[0,2,1]
> println(diag(result))
[2.0,2.0,0.0]
感覺就像我可以通過一行或通過本機功能做到這一點,我沒有在文檔中找到它。反向列的for循環和兩個diag調用的使用看起來像我正在重複一下自己。
什麼是最好的(pythonic但juliathonic)實現我想要的方式?這樣做的
列表理解,很好。當我用你的方法顛倒列的順序時,輸出看起來有點不同。 '''A = [0 1 2; 2 2 2; 0 1 2]'''println'''[0 1 2 \ n 2 2 2 \ n 0 1 2]'''while'''M = [A [:,4-i] for i = 1 :3]'''println'''[[2,2,2],[1,2,1],[0,2,0]]'''這兩種類型的印刷品是否有區別? – cantdutchthis 2014-10-01 20:59:07
是的,你正在切片,所以你得到一組數組。 – StefanKarpinski 2014-10-02 05:35:53