testcalss.m:Passage fonction anonyme à la méthode
classdef testclass
properties(Access = public)
a;
F;
end
methods(Access = public)
function this = testclass()
if (1 == 1)
this.F = eval('@(x)a * x');
eval('this.a = 5');
end
end
function Calculate(this)
a = this.a;
this.F(1);
end
end
end
test1.m:
global solver;
solver = testclass();
solver.Calculate();
j'exécuter le test et après je reçois ce message:
Fonction non définie ou variable 'a'. Erreur dans testclass/testclass/@ (x) a x Erreur dans le testclass/Calculer (ligne 18) this.F (1); Erreur dans test1 (ligne 3) solver.Calculate(); *
Avez-vous écrit un constructeur? Êtes-vous sûr que la syntaxe 'this' fonctionne sur MATLAB? – BillBokeey
Oui, cette syntaxe fonctionne. Il y a un constructeur. Vous pouvez le faire comme suit: 'solveur global; a = solver.a; b = solver.b; c = solveur.c ». Avant cela, quand je crée ma classe, j'écris une ligne 'solveur global; solveur = Parabolique(); – hedgehogues
Pouvez-vous modifier cela dans votre question? Et aussi, pourrait fournir quelque chose de runnable? – lhcgeneva