Matlab_ Постройте разницу между двумя графиками

Я новичок в Matlab, и я изо всех сил пытаюсь построить разницу между этими двумя графиками (вычесть один график из другого) ... Может ли кто-нибудь мне помочь?

% 2D plot of original target locations
X= double(xCoords);
Y= double(yCoords);
originalvalues = hist3([X(:) Y(:)],[30 40]);
imagesc(originalvalues)
contourf(originalvalues)
c= colorbar;
c.Label.String = 'Initial location';
axis equal
axis xy
xlabel('endCoordinatesx');
ylabel('endCoordinatesy');
title('2D Map of Original locations');

% 2D plot of final target locations
Xf= Design.endCoordinatesX;
Yf= Design.endCoordinatesY;
values = hist3(double([Xf(:) Yf(:)],[30 40]));
imagesc(values)
contourf(values)
c= colorbar;
c.Label.String = 'Final location';
axis equal
axis xy
xlabel('endCoordinatesx');
ylabel('endCoordinatesy');
title('2D Map of final locations');

person Mraquel    schedule 24.11.2016    source источник


Ответы (1)


Если я хорошо понял вашу проблему, вы хотите построить третий график, представляющий разницу между двумя наборами данных.

Что вам нужно сделать, так это получить общие ячейки для всех вычисляемых вами гистограмм:

% find common centers for the two datasets
[~, centers] = hist3(cat(2,[X(:) ; Xf(:)],...
                           [Y(:) ; Yf(:)]),...
                     [30 40]);

% then you can calculate the histogram for each set of data : 
originalvalues = hist3([X(:)  Y(:) ], centers);
values         = hist3([Xf(:) Yf(:)], centers);

% finaly, compute the difference between the two (now the bins are "aligned")
differenceValue = values - originalvalues;
person beesleep    schedule 24.11.2016
comment
Спасибо @beesleep! Очень помогло!! - person Mraquel; 25.11.2016