明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1243|回复: 9

[提问] 2个表内元素相乘,得到新表

[复制链接]
发表于 2024-5-12 20:14:51 | 显示全部楼层 |阅读模式
本帖最后由 wide 于 2024-5-12 20:16 编辑

表A (1 2 )表B (4 5 6 ),如何让2个表内的元素分别相乘得到一个新表,结果(4 5 6 8 10 12)即(1*4  1*5 1*6  2*4  2*5 2*6)。表内元素个数任意。
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-5-13 07:16:46 | 显示全部楼层
(apply 'append (mapcar '(lambda(x) (mapcar '(lambda(y) (* x y))'(4 5 6 7))) '(1 2)))

评分

参与人数 1明经币 +1 金钱 +5 收起 理由
tigcat + 1 + 5 很给力!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-5-12 21:02:40 | 显示全部楼层
  1. (defun K:TT (Lst1 Lst2 / RtnLst)
  2.   (setq RtnLst '())
  3.   (foreach a Lst1
  4.     (foreach b Lst2
  5.       (setq RtnLst (cons (* a b) RtnLst))
  6.     )
  7.   )
  8.   (reverse RtnLst)
  9. )

用法:
  1. (K:TT (list 1 2) (list 4 5 6))
回复 支持 1 反对 0

使用道具 举报

发表于 2024-5-12 21:09:46 | 显示全部楼层
本帖最后由 vitalgg 于 2024-5-12 21:12 编辑

这不就是张量积。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-5-12 21:30:09 | 显示全部楼层
 楼主| 发表于 2024-5-13 17:46:48 | 显示全部楼层
谢谢3个大佬的热心回答。明经因你们而精彩。
 楼主| 发表于 2024-5-14 09:21:58 | 显示全部楼层
vitalgg 发表于 2024-5-12 21:30
https://atlisp.cn/function/matrix:kronecker-product

大佬,看不到源码,
发表于 2024-5-14 09:24:58 | 显示全部楼层
本帖最后由 vitalgg 于 2024-5-14 09:26 编辑
wide 发表于 2024-5-14 09:21
大佬,看不到源码,

上面点源码,然后显示一黑框,需要在黑框里点一下。



  1. (defun matrix:kronecker-product (m1 m2)
  2.   "克罗内克积也称张量积、直积是两个任意大小的矩阵间的运算,符号记作(x)
  3.   。.以德国数学家利奥波德·克罗内克命名"
  4.   "matrix"
  5.   "(matrix:kronecker-product '((1 2)(3 1)(5 3))
  6.     '((0 3)(2 1)))
  7.   => ((0 3 0 6)
  8.     (2 1 4 2)
  9.     (0 9 0 3)
  10.     (6 3 2 1)
  11.     (0 15 0 9)
  12.     (10 5 6 3))"
  13.   (apply (quote append)
  14.     (mapcar (quote (lambda (a)
  15.           (mapcar (quote (lambda (x)
  16.                 (apply (quote append)
  17.                   x)))
  18.             (matrix:trp a))))
  19.       (mapcar (quote (lambda (m1%)
  20.             (mapcar (quote (lambda (m1%%)
  21.                   (mapcar (quote (lambda (m2%)
  22.                         (mapcar (quote (lambda (m2%%)
  23.                               (* m1%% m2%%)))
  24.                           m2%)))
  25.                     m2)))
  26.               m1%)))
  27.         m1))))

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-5-14 19:26:02 | 显示全部楼层
自贡黄明儒 发表于 2024-5-13 07:16
(apply 'append (mapcar '(lambda(x) (mapcar '(lambda(y) (* x y))'(4 5 6 7))) '(1 2)))

这才是正经写法
发表于 2024-5-17 23:08:43 | 显示全部楼层
  1. (defun abc(a b)(apply'append(mapcar'(lambda(x)(mapcar'(lambda(y)(* x y))b))a)))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 17:54 , Processed in 0.182924 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表