Я хочу ООП, как интерфейс с Matlab, таким образом, что у меня есть что-то вродеСтатическое свойство в Matlab
classdef Foo
properties (Constant)
dict = NaN;
end
methods (Static)
function list = search(varargin)
%...
Foo.dict = cell(10,5); % etc..
end
end
end
Таким образом я могу получить доступ и изменить свойство (статический). Как мне его установить? Не Constant
я думаю ..
Update: Моя проблема заключается в том, что t9.load();
не обновляет t9.dict
classdef t9
%T9 Summary of this class goes here
% Detailed explanation goes here
properties% (Static)
dict = {};
end
methods (Static)
function load()
load('usdict.mat');
t9.dict = usdict;
end
function matches = search(varargin)
matches = {};
num_words = nargin-1;
for word=t9.dict(num_words, :)
if strcmp(word,'')
continue;
end
word_cell = word{1};
success = true;
for i=1:num_words
char = word_cell(i);
if ~ismember(char, varargin{i})
success = false;
end
end
if success, matches{end+1} = word_cell; end
end
end
end
end
Пожелания:
t9.load();
t9.search('ABC', 'DEF');
t9.search('DEF', 'GHI', 'MNO');
'Static'' методы' - это методы, которые могут запускаться без экземпляра класса; они могут ссылаться только на 'constant'' properties'. Для установки 'свойства' класса требуется экземпляр этого класса. Таким образом, казалось бы, ваш 'метод' не должен быть' static'. –
@RodyOldenhuis Посмотрите мой обновленный код. –
Прошу прощения, но это звучит так, как будто вы создаете [спагетти с фрикадельками] (http://en.wikipedia.org/wiki/Spaghetti_code#Spaghetti_with_meatballs) здесь ... –