如何将脚本更改为函数



我在excel表中有一组数据,我已经将其导入到MATLAB中,但该组数据中有NaN。我已经在主脚本中找到了一些代码来将NaN替换为所需的值:

max = x(:, 2);
min = x(:, 3);
for j = 1:length(max)
for k = 1:length(min)
if isnan (max(j))
max (j) = ((max(j-1)+max(j+1))/2);
elseif isnan (min(k))
min (k) = ((min(k-1)+min(k+1))/2);
end
end
end

然而,我需要能够将此代码转换为用户定义的函数,并从主脚本中调用它,而不是在主脚本上进行所有计算。

我试着开始制作功能:

function [missingmax, missingmin] = missing(max, min)

然而,其余的我想不通。

function [max_x, min_x] = missing(x)
max_x = x(:, 2);
min_x = x(:, 3);
for jj = 1:length(max_x)
for kk = 1:length(min_x)
if isnan (max_x(jj))
max_x (jj) = ((max_x(jj-1)+max_x(jj+1))/2);
elseif isnan (min_x(kk))
min_x (kk) = ((min_x(kk-1)+min_x(kk+1))/2);
end
end
end
end

你走在了正确的轨道上。几件事:

  1. 您的输入是x,而不是min,max
  2. 您的输出是minmax,而不是missingmaxmissingmin
  3. j表示虚单位。不建议用作变量,因此我更改了它
  4. 您调用了变量minmax。不要那样做。曾经认真地不要。如果你设法做min=4,然后试图计算一个数组的最小值,你会得到一堆错误。基本上:永远不要将内置函数的名称用于变量

由于进行线性插值,因此不需要在此处定义函数。它已经存在于Matlab中:fillmissing

所以你可以像一样替换x中缺失的值

x_filled = fillmissing(x,'linear')

相关内容

  • 没有找到相关文章