2024-11-19 kron积

server/2024/11/20 20:01:28/

若A=[a11 a12;

         a21 a22];

    B=[b11 b12;

         b21 b22];

则C=[a11*b11 a12*b11 a21*b11 a22*b11;

       a11*b12 a12*b12 a21*b12 a22*b12;

       a11*b21 a12*b21 a21*b21 a22*b21;

       a11*b22 a12*b22 a21*b22 a22*b22]

用MATLAB实现

方法1:

A = [a11 a12; a21 a22];
B = [b11 b12; b21 b22];C = zeros(4, 4); % 初始化矩阵C的大小为4x4,填充值为0% 计算矩阵C的每个元素
C(1,:) = A(1,:) .* B(1,:);
C(2,:) = A(1,:) .* B(2,:);
C(3,:) = A(2,:) .* B(1,:);
C(4,:) = A(2,:) .* B(2,:);

 方法2:

可以使用矩阵运算来简化这个过程,因为矩阵C实际上是由A的行与B的列的外积组成的块矩阵:

A = [a11 a12; a21 a22];
B = [b11 b12; b21 b22];C = [A(1,:) * B'; A(2,:) * B'];

方法3:

kron 函数计算的是Kronecker积,它将矩阵A的每个元素与矩阵B相乘

A = [a11 a12; a21 a22];
B = [b11 b12; b21 b22];C = kron(A, B);

 方法4:

以下是使用四个嵌套的 for 循环来构建矩阵C的MATLAB代码

A = [a11 a12; a21 a22];
B = [b11 b12; b21 b22];C = zeros(4, 4); % 初始化一个4x4的矩阵C% 四个嵌套的for循环来填充矩阵C
for i = 1:2for j = 1:2for k = 1:2for l = 1:2C((i-1)*2+k, (j-1)*2+l) = A(i,j) * B(k,l);endendend
end

顺便补个图 

% 定义新的变量范围
r_prime = linspace(-1, 1, 400); % r' 从 -1 到 1
theta_prime = linspace(-1, 1, 400); % θ' 从 -1 到 1% 创建网格
[R_prime, Theta_prime] = meshgrid(r_prime, theta_prime);% 转换 r' 和 θ' 回 r 和 θ
r = (R_prime + 1.5) / 2;
theta = pi / 2 * (Theta_prime + 1) / 2;% 计算 Ur'
Ur_prime = (r.^6) .* ((sin(theta)).^4 + (cos(theta)).^4).^(-3/2) .* (cos(theta)).^3 .* (sin(theta)).^3 .* (r.^4 - 1).^3 .* (r.^4 - 1/16).^3;% 处理 r^4 和 θ^4 超出范围的情况
Ur_prime((r.^4 <= 1/16) | (r.^4 >= 1)) = NaN;% 绘制图像
figure;
meshc(R_prime, Theta_prime, Ur_prime);
xlabel('r''');
ylabel('θ''');
zlabel('Ur''');
title('3D plot of Ur''(r'', θ'')');


http://www.ppmy.cn/server/143532.html

相关文章

线程(一)——初识线程

概念&#xff1a; 1、线程是什么 线程是一个“执行流”。每个线程之间可以按照自己的顺序执行自己的代码&#xff0c;多个线程之间还可以同时执行多份代码。 用银行来举例子&#xff1a;一个人去银行办理业务&#xff0c;多个业务一个人跑肯定是效率不高&#xff0c;这时候就需…

【1】猫眼娱乐后端开发面试题整理

[1]. 全量索引和增量索引的区别 全量索引&#xff1a;检索系统在启动时一次性读取当前数据库中的所有数据&#xff0c;建立索引。 增量索引&#xff1a;系统运行过程中&#xff0c;监控数据库的变化&#xff0c;即增量&#xff0c;实时加载更新&#xff0c;构建索引。 [2]. …

3D Gaussian Splatting 代码层理解之Part1

2023 年初,来自法国蔚蓝海岸大学和 德国马克斯普朗克学会的作者发表了一篇题为“用于实时现场渲染的 3D 高斯泼溅”的论文3d_gaussian_splatting。该论文提出了实时神经渲染的重大进步,超越了NeRF等以往方法的实用性。高斯泼溅不仅减少了延迟,而且达到或超过了 NeRF 的渲染质…

5个Midjourney技巧,让你的图片更自然真实,没有“AI味”

您是否觉得有些AI生成的图像看起来过于完美&#xff1f;有股AI味&#xff1f;MidJourney 可以创建非常高质量的逼真图像&#xff0c;然而画面完美无瑕、栩栩如生&#xff0c;让人感觉完美得令人不安&#xff0c;几乎不真实。 比如这个&#xff0c;有点夸张&#xff1a; 大多数…

32.3 mmap的在io提速上的应用和prometheus的应用

本节重点总结 : mmap的在io提速上的应用prometheus 中mmap的应用 mmap 减少copy次数 传统IO 在开始谈零拷贝之前&#xff0c;首先要对传统的IO方式有一个概念。基于传统的IO方式&#xff0c;底层实际上通过调用read()和write()来实现。通过read()把数据从硬盘读取到内核缓…

第三十七章 如何清理docker 日志

如何清理docker 日志 目标 掌握docker 日志设置掌握docker日志的清理办法背景 在现代软件开发和部署环境中,Docker 容器技术因其轻量级、可移植性和高效资源利用的特点,已成为许多企业和开发团队的首选。Docker 容器在运行过程中会产生大量的日志信息,这些日志对于监控容器…

电子电气架构 --- 传统刷写流程怎么用在SOC上就不适用呢?

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…

安装pytest失败ModuleNotFoundError: No module named ‘distutils‘

下载一下即可解决 pip install setuptools 下载完成后&#xff0c;再进行下载 pip install pytest