使用均方误差创建索引矩阵matlab

西莫·奥斯(Simo Os)

Mean Square Error(MSE),是用于定义在两个块之间的差异的方法,并且可以如下计算:ab两个块大小相等

MSE = sqrt(sum(sum((a-b).^2)))/size(a or b)

如果MSE小于给定的阈值,则这两个块是不同的。

给定两个矩阵AB,目的是将两个矩阵划分为给定大小的块,然后从A中提取第一个块,让它成为a,然后bBMean Square Error之间a并且b小于给定阈值的位置搜索一个块,然后b从矩阵返回块的位置B等等。这是一个示例:

给定两个矩阵AB其中:

A= [1 1   4 4   2 2 
    1 1   4 4   2 2

    2 2   9 9   5 5
    2 2   9 9   5 5

    3 3   4 4   9 9
    3 3   4 4   9 9];

B = [ 2 2   4 4   9 9
      2 2   4 4   9 9];

阈值为2

a从矩阵获得的第一个块A是:

1 1
1 1

该块b从基质获得的B那之间MSRab小于所述阈值是:

2 2
2 2

因此,我们返回块b在矩阵B中的位置为1

a从矩阵中获得的第二个块A是:

4 4
4 4

bBMSR介于ab小于阈值的矩阵获得的块为:

4 4
4 4

因此,我们返回块b在矩阵中的位置B,即2。依此类推。

最终结果应如下

RES= [1 2 1
      1 3 2
      1 2 3];

有没有更快的方法?

路易斯·门多

这是使用的向量化方法bsxfun

首先定义数据:

A = [1 1   4 4   2 2 
     1 1   4 4   2 2
     2 2   9 9   5 5
     2 2   9 9   5 5
     3 3   4 4   9 9
     3 3   4 4   9 9];  %// data: A
B = [2 2   4 4   9 9
     2 2   4 4   9 9];  %// data: B
m = 2;                  %// number of rows per block
n = 2;                  %// number of cols per block

然后应用以下步骤:

  1. 重塑矩阵,以使每个块都是一行(受到这个好答案的启发)。
  2. 计算所有成对块的MSE。
  3. 针对B(的每个区块A找出MSE的argmin 请注意,如果其中有多个最小化块,则会B找到第一个。
  4. 将结果重塑为矩阵。

代码:

A2 = reshape(permute(reshape(A, size(A, 1), n, []), [2 1 3]), n*m, []);  %// step 1
B2 = reshape(permute(reshape(B, size(B, 1), n, []), [2 1 3]), n*m, []);
mse = squeeze(sum(bsxfun(@minus, A2, permute(B2,[1 3 2])).^2, 1));       %// step 2
[~, result] = min(mse, [], 2);                                           %// step 3
result = reshape(result, size(A,1)/m, size(A,2)/n);                      %// step 4

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用均方误差创建索引矩阵matlab

来自分类Dev

MATLAB ::均方误差与SNR图

来自分类Dev

Python中的均方误差

来自分类Dev

使用矩阵索引创建矩阵

来自分类Dev

通常使用深度自动编码器/深度学习时有足够的均方误差

来自分类Dev

通常使用深度自动编码器/深度学习时有足够的均方误差

来自分类Dev

根据参考矩阵和Data Matlab矩阵创建索引矩阵

来自分类Dev

根据参考矩阵和Data Matlab矩阵创建索引矩阵

来自分类Dev

在MATLAB中使用矩阵进行矩阵索引

来自分类Dev

如何使用索引矩阵从数据集中创建最近邻矩阵-MATLAB

来自分类Dev

Matlab的误差线与颜色矩阵

来自分类Dev

如何使用三个自变量拟合线性回归模型并使用sklearn计算均方误差?

来自分类Dev

计算2张量之间的均方误差的难度

来自分类Dev

使用matlab索引矩阵中的行

来自分类Dev

在Matlab中使用向量建立矩阵索引

来自分类Dev

使用matlab索引矩阵中的行

来自分类Dev

在MATLAB中使用索引矩阵选择值?

来自分类Dev

Matlab平面拟合-无法获得均方根误差

来自分类Dev

矩阵尺寸必须同意Matlab中的误差?

来自分类Dev

Matlab中内部矩阵尺寸的误差

来自分类Dev

MATLAB与.NET之间的矩阵乘法误差

来自分类Dev

Matlab索引稀疏矩阵

来自分类Dev

使用哈希表MATLAB创建矩阵

来自分类Dev

如何使用Matlab在图中显示矩阵及其索引号的值

来自分类Dev

Dplyr工作流在变化点分析中反映均方误差估计量

来自分类Dev

scikit-learn交叉验证,带有均方误差的负值

来自分类Dev

训练集神经网络的历元和均方误差的计算

来自分类Dev

在哪种情况下,交叉熵优于均方误差?

来自分类Dev

带有statsmodel ARIMA的不切实际的均方误差

Related 相关文章

热门标签

归档