fplot(@(A) Calc_Result(A, B, C, D), [0 1]);
fplot 立即在区间 [0 1] 上绘制 Calc_Result。 fplot 不绘制 NaN 值。请注意,此代码未指定您要在 0 和 1 之间绘制 100 个点(即,以 0.01 的步长绘制); fplot 不在乎。
如果除了绘制数据之外还需要该数据,您始终可以先生成它,然后再绘制数据。如果尚未构建该函数来处理矩阵输入,您可以这样做:
xvals = [];
yvals = [];
for A = 0:0.01:1
y = Calc_Result(A, B, C, D);
if ~ isnan(y)
yvals = [yvals y];
xvals = [xvals A];
end
end
plot(xvals, yvals);
如果它是为处理矩阵输入而构建的(即,您在正确的位置有一个. 来执行逐个元素的乘法和除法),您可以执行类似的操作
A = 0:0.01:1;
y = Calc_Result(A, B, C, D);
虽然不知道它何时返回 NaN 值,但我认为最好的选择是使用 for 循环。它可能比使用矩阵输入要慢一些,但只有 100 个值要计算,我认为这没什么大不了的。