fplot(@(A) Calc_Result(A, B, C, D), [0 1]);
fplot
немедленно наносит Calc_Result
на интервал [0 1]. fplot
не отображает NaN
значений. Обратите внимание, что в этом коде не указано, что вы хотите построить 100 точек между 0 и 1 (то есть, построить с шагом 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 значений я не думаю, что это имеет большое значение.