Re: [問題] 矩陣元的取代

看板Mathematica作者 (嗯嗯啊啊去洗澡)時間11年前 (2013/07/18 08:00), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《a29788685 (嘉峰)》之銘言: : 請問(1): : 例如目前有一個矩陣{{a,b,c},{d,e,f}....} : 我想要判定第一個矩陣元,即上矩陣中的a d ..等, : 就像是If[a<1,c,a],然後應用在每條列矩陣一樣, : =>{{If[a<1,c,a],b,c},{If[d<1,f,d],e,f}.....}, : 不過由於矩陣太龐大,沒辦法一條一條打,不知道有沒有比較方便的方法? 假設你的矩陣叫A,則 {If[A[[#, 1]] < 1, A[[#, 3]], A[[#, 1]]], A[[#, 2]], A[[#, 3]]} & /@ Range[Dimensions[A][[1]]] : 請問(2): : 我想要提取矩陣元,然後放到新的矩陣之中, : 例如:一樣的矩陣A={{a,b,c},{d,e,f}....} : 我想要取前兩個矩陣元,並將A改寫成A={{a,b},{d,e}....} : 我想到的方法是: : B={{A[[1,1]],A[[1,2]]},{A[[2,1]],A[[2,2]]}...}這樣, : 但是一樣的,我矩陣共有三千多個矩陣元,沒辦法一個一個打, : 想請教一下有沒有比較方便的方法? : 非常感謝! B={A[[#,1]],A[[#,2]]}&/@Range[Dimensions[A][[1]]] -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.163.103.112

07/18 09:56, , 1F
{If[#[[1]]<1,#[[3]],#[[1]]],#[[2]],#[[3]]}&/@A
07/18 09:56, 1F

07/18 09:57, , 2F
A[[All,{1,2}]] 取出A每列的第一及第二個元素
07/18 09:57, 2F

07/18 09:57, , 3F
Length[A]其實可以取代Dimensions[A][[1]]
07/18 09:57, 3F

07/18 11:42, , 4F
感謝指教~~~好方法
07/18 11:42, 4F

07/18 20:00, , 5F
謝謝,受益良多!!
07/18 20:00, 5F
文章代碼(AID): #1Hvp0pwl (Mathematica)
討論串 (同標題文章)
文章代碼(AID): #1Hvp0pwl (Mathematica)