使用Kronecker产品在Matlab中避免for循环

海卫

如果我有两个包含元素a1,a2,...和b1,b2,...的序列A和B,其中a_i和b_i的维数分别为1xn和1xm,那么我想创建一个新的序列C,其中包含:a_i(1)* b_i,a_i(2)* b_i,...,a_i(n)* b_i。因此,对于C的第i个元素,我想获得元素a_i和b_i的Kronecker乘积。我想在Matlab中编写此代码,但没有for循环。对于b_i是标量的情况,使用

C = A.*B

但是,这不适用于非标量b_i。所以我现在要做的是长度为L的序列:

C = [];
for ii = 1:L
    C = [C; kron(A(ii,:),B(ii,:))];
end

但是我有一个想法,那就是必须要有for循环。这是我使用符号工具箱的代码:

clc; clear;

L = 5;

syms('a1',[L,1]);
syms('a2',[L,1]);
syms('b1',[L,1]);
syms('b2',[L,1]);

A = [a1,a2];
B = [b1,b2];

C1 = A.*B % only for size(B,2)=1

C2 = [];

for ii = 1:L
    C2 = [C2;kron(A(ii,:),B(ii,:))];
end
C2

C3 = kron(A,B) % does not work
rahnema1

这里reshape隐式扩展用于计算结果:

C = reshape(B .* reshape (A, L, 1, []), L, []);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Kronecker产品在Matlab中避免for循环

来自分类Dev

在Matlab中避免for循环

来自分类Dev

在Matlab中避免for循环

来自分类Dev

numpy中Kronecker产品的双循环矢量化和整形

来自分类Dev

TensorLy中的Kronecker产品源代码

来自分类Dev

在MATLAB中使用repmat复制Kronecker张量

来自分类Dev

大型矩阵的Kronecker产品

来自分类Dev

Kronecker产品功能定义

来自分类Dev

Python CVXPY kronecker 产品尺寸

来自分类Dev

避免Scala中的循环

来自分类Dev

避免R中的for循环

来自分类Dev

在R中避免for循环

来自分类Dev

避免使用for循环

来自分类Dev

使用while循环可避免Java中的if语句深度嵌套

来自分类Dev

在MVC设计中避免使用C ++的循环依赖

来自分类Dev

使用while循环可避免Java中的if语句深度嵌套

来自分类Dev

使用 Pandas 数据帧避免 Python 中的显式 for 循环

来自分类Dev

在 Matlab 中的并行 for 循环中使用 for 循环

来自分类Dev

在Matlab或Octave中使用fzero,避免循环和复杂的解决方案

来自分类Dev

在Excel中避免循环引用

来自分类Dev

在R编程中避免FOR循环

来自分类Dev

如何避免R中的for循环

来自分类Dev

在Excel中避免循环引用

来自分类Dev

避免R中的“ while”循环

来自分类Dev

避免函数中的双重“for”循环

来自分类Dev

避免使用 numpy 向量的 for 循环

来自分类Dev

避免使用“for”循环覆盖文件

来自分类Dev

使用for循环循环时如何避免重复?

来自分类Dev

Keras 中 Kronecker 产品的自定义 Lambda 层 - 为 batch_size 保留的维度存在问题