Verfasst am: 10.08.2010, 19:31
Titel: Funktion der Superclass aus Unterklasse aufrufen
Hi,
ich habe ein Problem mit Klassen. Bin blutiger Anfänger auf dem Gebiet. Ich will aus der Unterklasse eine Funktion der Hauptklasse aufrufen.
Es gibt die Klasse c_frequencyPoints mit Messdaten an Frequenzpunkten, und die Klasse c_measurementdata, welche allgemeine Informationen der Messungen enthält. In dieser Klasse ist auch eine Funktion setPlotMenu, welche mir von plots die menus erzeugt. Ich habe die mit in die Superclass mit rein, damit alle späteren Plots gleich aussehen, ohne das ich viel zaubern muss. Nun würde ich diese Funktion gern direkt aufrufen, so wie es z.B. mit measValues.getMeasurementInfo auch geht, also:
function plotFrequencyValues(self, target)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% plot data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
axes(target);
plot(self.freqVector, self.valuesVector);
c_measurementdata.setPlotMenu(target)% static end end end
classdef c_measurementdata %< handle
properties date; % when measured
description; % more info about the data
device; % device name
die; % name of the measured die
end methods(Static = false) function obj = c_measurementdata(date, description, device, die) switchnargin case0
obj.date = '';
obj.description = '';
obj.device = '';
case4
obj.date = date;
obj.description = description;
obj.device = device;
obj.die = die;
end end function returnString = getMeasurementInfo(self)
returnString = char(['Measurement date : ', self.date,],... ['Measurement device : ', self.device,],... ['Die Name: ', self.die,],... ['Measurement description : ', self.description,]);
end end methods(Static = true) function setPlotMenu(target) axes(target);
% Define a context menu; it is not attached to anything
hcmenu = uicontextmenu;
h1 = uimenu(hcmenu,'label','LineWidth'); % Make a menu for the lineWidth
h2 = uimenu(hcmenu,'label','LineStyle'); % Make a menu for the lineStyle
h3 = uimenu(hcmenu,'label','Extras'); % Make a menu for the extras
% Define callbacks for context menu items that change linestyle
width1 = ['set(gco, ''LineWidth'', 1)'];
width2 = ['set(gco, ''LineWidth'', 2)'];
width3 = ['set(gco, ''LineWidth'', 3)'];
width4 = ['set(gco, ''LineWidth'', 4)'];
lin1 = ['set(gco, ''LineStyle'', ''--'')'];
lin2 = ['set(gco, ''LineStyle'', '':'')'];
lin3 = ['set(gco, ''LineStyle'', ''-'')'];
extra1 = ['delete(gco)'];
% Define the context menu items and install their callbacks uimenu(h1, 'Label', '1', 'Callback', width1);
uimenu(h1, 'Label', '2', 'Callback', width2);
uimenu(h1, 'Label', '3', 'Callback', width3);
uimenu(h1, 'Label', '4', 'Callback', width4);
uimenu(h2, 'Label', 'dashed', 'Callback', lin1);
uimenu(h2, 'Label', 'dotted', 'Callback', lin2);
uimenu(h2, 'Label', 'solid', 'Callback', lin3);
uimenu(h3, 'Label', 'DELETE', 'Callback', extra1);
% Locate line objects
hlines = findall(target, 'Type','line');
% Attach the context menu to each line forline = 1:length(hlines) set(hlines(line),'uicontextmenu',hcmenu) end end end end
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.