matlab - 如何将脚本更改为函数?
问题描述
我在导入到 MATLAB 的 Excel 表中有一组数据,但是该组数据中有 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
你走在正确的轨道上。几件事:
- 你的输入是
x
,不是min,max
- 你的输出是
min
andmax
, notmissingmax
andmissingmin
j
表示虚数单位不推荐用作变量,所以我改了。- 您调用了变量
min
和max
. 不要那样做。曾经。严重地。不。如果你设法做到min=4
然后尝试计算数组的最小值,你会得到一堆错误。基本上:永远不要为变量使用内置函数的名称。
推荐阅读
- django - 图像在 request.POST 中发送,但在 form.cleaned_data 中清理
- python - 将包含 GeoJSON 的 CSV 字符串压缩到 python 字典
- angular - 重定向到另一个页面Angular 7后如何重新加载主要组件
- python - 将函数转换为 Python 类
- javascript - 未捕获的类型错误:TransportU2F.create 不是函数
- javascript - 使用 javascript 在多选下拉列表中动态填充所选选项
- gradle - 不知道为什么doFirst()和doLst()没有执行
- flutter - 比将回调函数传递给子 Widget 更好的架构
- c# - 如何在c#中将两个数据源绑定到数据网格中
- javascript - 没有表单标签的复选框,没有找到选中的复选框