串列中資料的轉置
本帖最后由 作者 于 2004-8-13 10:02:44 编辑 <br /><br /> 例如:已知串列(串列中的个数不定)(("XX" "A" "B" "C" "D" "E" "F")<BR> ("1F" "15.51" "6.87" "0" "130.59" "7.2" "15.18")<BR> ("2F" "0" "0" "11.9" "146.61" "7.25" "18.98") <BR> ("3F" "0" "0" "62.84" "98.11" "6.01" "11.02")<BR> ("4F" "0" "0" "56.89" "55.29" "5.37" "0" )<BR> ("14F" "0" "0" "56.89" "55.29" "5.37" "0")<BR>)
希望得转置结果
(("XX" "1F" "2F" "3F" "4F" "14F")<BR> ("A" "15.51" "0" "0" "0" "0")<BR> ("B" "6.87" "0" "0" "0" "0")<BR> ("C" "0" "11.9" "62.84" "56.89" "56.89")<BR> ("D" "130.59" "146.62" "98.11" "55.29" "55.29")<BR> ("E" "7.2" "7.25" "6.01" "5.37" "5.37")<BR> ("F" "15.18" "18.98" "11.02" "0" "0")<BR>) 顺便问一下,能不能得到以下要求:
已知
(1 2 )<BR>(6 7 )<BR>(a b )<BR>(f g )
也想得到这样的结果:<BR>(1 6 a f)<BR>(1 6 b f)<BR>(1 6 a g)<BR>(1 6 b f)
(1 7 a f)<BR>(1 7 b f)<BR>(1 7 a g)<BR>(1 7 b f)
(2 6 a f)<BR>(2 6 b f)<BR>(2 6 a g)<BR>(2 6 b f)
(2 7 a f)<BR>(2 7 b f)<BR>(2 7 a g)<BR>(2 7 b f) 看下面:
(DEFUN INV-MATRIX (FIRST / SL1 SL2 I J SECOND TEMPL)<BR>(SETQ SL1 (LENGTH FIRST) I 0 J 0 SECOND (LIST))<BR>(SETQ SL2 (LENGTH (CAR FIRST)) TEMPL (LIST))<BR>(REPEAT SL2<BR> (REPEAT SL1<BR> (SETQ TEMPL (CONS (NTH I (NTH J FIRST)) TEMPL) J (1+ J))<BR> )<BR> (SETQ SECOND (CONS (REVERSE TEMPL) SECOND) TEMPL (LIST) I (1+ I) J 0)<BR>)<BR>(REVERSE SECOND)<BR>)
(DEFUN C:INV ()<BR>(INV-MATRIX (LIST '("XX" "A" "B" "C" "D" "E" "F")<BR> '("1F" "15.51" "6.87" "0" "130.59" "7.2" "15.18")<BR> '("2F" "0" "0" "11.9" "146.61" "7.25" "18.98") <BR> '("3F" "0" "0" "62.84" "98.11" "6.01" "11.02")<BR> '("4F" "0" "0" "56.89" "55.29" "5.37" "0" )<BR> '("14F" "0" "0" "56.89" "55.29" "5.37" "0")<BR>)<BR>)<BR>) 献花一朵,谢谢帮了大忙
页:
[1]