В MATLAB создан график с [H,AX,BigAx,P] = plotmatrix(x);
. Вместо рассеянных точек вне диагоналей можно ли иметь аппроксимирующую кривую? MATLAB: Адаптация кривой к разбросанным данным в plotmatrix
3
A
ответ
0
чтение documentation, кажется, что эта функция полезна только для рассеивателей, что имеет смысл, так как, как правило, указывает на матрицу, может быть все более и подгонки кривой не будет иметь смысла. Может быть, использование subplot() (link) было бы более подходящим и обеспечило бы большую универсальность?
0
После создания участков с plotmatrix
вы можете цикл по каждому недиагональному графику рассеяния, принесите связанные X и Y данных, perform the curve fitting, а затем plot the results следующим образом:
data = randn(50,3); % Random sample data
[hScatter, hAxes] = plotmatrix(data);
for index = find(~eye(size(hScatter))).' % Loop over off-diagonal plots
X = get(hScatter(index), 'XData'); % Get X data
Y = get(hScatter(index), 'YData'); % Get Y data
betas = [ones(numel(X), 1) X(:)]\Y(:); % Simple linear regression
xLine = get(hAxes(index), 'XLim'); % Use axes limits for X data
yLine = betas(1)+xLine.*betas(2); % Compute regression line
line(hAxes(index), xLine, yLine, 'Color', 'r'); % Plot red regression line
end
И вот в результате чего участок: