相关疑难解决方法(0)

在Matlab中使用i和j作为变量

i并且j是非常流行的变量名称(参见例如,这个问题这个).

例如,在循环中:

for i=1:10,
    % do something...
end
Run Code Online (Sandbox Code Playgroud)

作为矩阵的索引:

mat( i, j ) = 4;
Run Code Online (Sandbox Code Playgroud)

为什么不应该他们作为在Matlab的变量名?

variables matlab naming-conventions

138
推荐指数
6
解决办法
2万
查看次数

将3D矩阵与2D矩阵相乘

假设我有一个AxBxC矩阵X 和一个BxD矩阵Y.

是否有一种非循环方法,通过它我可以将每个C AxB矩阵与Y

matlab matrix vectorization matrix-multiplication

25
推荐指数
4
解决办法
2万
查看次数

x86有一个很好的双精度小矩阵SIMD库吗?

我正在寻找一个SIMD库,专注于小型(4x4)矩阵操作的图形.那里有很多单精度的,但我需要支持单精度和双精度.

我看过英特尔的IPP MX库,但我更喜欢有源代码的东西.我对这些特定操作的SSE3 +实现非常感兴趣:

  1. Mat4*Mat4
  2. Mat4*Vec4
  3. Mat4*Mat4数组
  4. Mat4*Vec4阵列
  5. Mat4倒置(很高兴)

编辑:请不要"过早优化"答案.任何使用小矩阵的人都知道GCC不会对这些以及手动优化的内在函数或ASM进行矢量化.在这种情况下,这很重要,或者我不会问.

c++ sse simd matrix-multiplication

10
推荐指数
1
解决办法
2787
查看次数

Matlab中的张量收缩

可能重复:
MATLAB:如何向量乘两个矩阵数组?

有没有办法在Matlab中签订高维张量?

例如,假设我有两个三维数组,具有以下大小:

size(A) == [M,N,P]
size(B) == [N,Q,P]
Run Code Online (Sandbox Code Playgroud)

我想承包AB分别在第二和第一指标.换句话说,我想考虑A成为一个大小矩阵的数组,[M,N]并且B是等长的[N,Q]矩阵数组; 我想逐个元素(逐个矩阵)乘以这些数组来获得大小[M,Q,P].

我可以通过for循环来做到这一点:

assert(size(A,2) == size(B,1));
assert(size(A,3) == size(B,3));

M = size(A,1);
P = size(A,3);
Q = size(B,2);

C = zeros(M, Q, P);
for ii = 1:size(A,3)
    C(:,:,ii) = A(:,:,ii) * B(:,:,ii);
end
Run Code Online (Sandbox Code Playgroud)

有没有办法避免for循环?(也许可以使用任意数量维的数组?)

matlab matrix vectorization matrix-multiplication

5
推荐指数
1
解决办法
8279
查看次数

在matlab中计算1000个5x5矩阵的协方差

我有1000个5x5矩阵(Xm),如下所示:

在此输入图像描述

每个$(x_ij)m $是从分布中得出的点估计.我想计算cov每个$ x {ij} $ 的协方差,其中i = 1..n,并且j = 1..n在红色箭头的方向上.

例如,$ X_m $的方差是`var(X,0,3),它给出了5x5的方差矩阵.我能以同样的方式计算协方差吗?

尝试回答

到目前为止我已经这样做了:

for m=1:1000
Xm_new(m,:)=reshape(Xm(:,:,m)',25,1);
end

cov(Xm_new)
spy(Xm_new) gives me this unusual looking sparse matrix:
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

matlab

3
推荐指数
1
解决办法
3123
查看次数