看板 MATLAB 關於我們 聯絡資訊
有一四階張量 c(ii,jj,kk,ll) 要怎簡化為二階的張量 c(p,q) ?? 其中 ii,jj ----> p (註: c(ii,jj,kk,ll)的ii,jj轉換為p; kk,ll則轉換為q) 1,1 1 1,2 6 1,3 5 2,1 6 2,2 2 2,3 4 3,1 5 3,2 4 3,3 3 例: c(1,2,2,3)=c(6,4) c(3,1,2,2)=c(5,2) ...... 這種簡化要怎麼寫? 是有一種寫法是一個一個慢慢寫... 也就是 c(1,1,1,1)=c(1,1) ; c(1,1,1,2)=c(1,6) ...... 但是這樣要寫很久,應該有更簡單的寫法 懇求高手協助!!!感謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.130.17.157
celestialgod:找轉換邏輯吧 相同是他自己 相加多少是多少那樣 09/06 14:48
celestialgod:看起來像是if(ii=jj) p=ii elseif(ii+jj=3) p=6.... 09/06 14:50
H45:為什麼 c(1,1,1,2)=c(1,6); 而不是 c(1,1,1,2)=c(1,2); 09/06 15:50
H45:這些索引值有什麼規定嗎? 09/06 15:52
H45:而且 c(1,1,1,1)=c(1,1) 等號左右邊寫反了吧? 09/06 15:53
ejialan:if (ii==jj), p=ii; else, p=9-ii-jj; end 09/06 16:09
alamabarry:一看就是固體力學的彈性係數@@ 09/06 16:21
alamabarry:主要是因為有一些對稱性的關係才可以化簡 09/06 16:23
candy88257:這是"張量"裡面的東西,就如我上面表格那樣。 09/06 16:23
candy88257:感謝樓上回答的大大!! 09/06 16:25
alamabarry:四階無法化成二階 09/06 23:12
alamabarry:除非Cijkl=Cjikl=Cijlk=Cklij 09/06 23:13
alamabarry:類似的情況 09/06 23:13
candy88257:恩,我研究的就是您說的那塊 09/07 04:17
candy88257:無法轉二階的話我也不會想寫轉換的程式碼了 09/07 04:18
candy88257:程式碼我已經寫好了,真的非常感謝樓上 09/07 04:20
candy88257:助我轉換邏輯 09/07 04:20