在 MATLAB 中用两个数组的减法和除法实现一个方程

Implement an equation with a subtraction and division of two arrays in MATLAB

我想在 Matlab 中实现这个方程

a 值在一个 140x1 双精度数组中,称为 approx,x 的值也在一个 140x1 双精度数组中,称为 subArray,n 是一个 1x1 数组,其值等于 140。

我正在使用以下代码:

MRE=(1/n)*(abs(approx(:,1)- subArray(:,1))/abs(subArray(:,1)));

但我收到以下错误

左右两边的元素个数不同,无法赋值

如何在 Matlab 中实现这个方程?

给你element-wise division。也不要忘记求和:

MRE = (1/n) * sum((abs(approx - subArray) ./ abs(subArray)));
              ^^^                         ^

使用一些随机数据:

clc, clear, rng(3);

n = 140;
approx = rand(n, 1);
subArray = rand(n, 1);

MRE = (1/n) * sum((abs(approx - subArray) ./ abs(subArray)))

% MRE =
% 
%     4.2877