Удобный способ решить эту проблему - иметь функцию, которая хранит и отображать комментарии для вас, то есть что-то вроде функции ниже, которая откроет диалоговое окно, если вы вызовете его с помощью comments('myVar')
, чтобы позволить вамвведите новые (или прочитайте / обновите предыдущие) комментарии к переменной (или функции, или сотруднику) с пометкой myVar
.
Обратите внимание, что комментарии не будут доступны в вашем следующем сеансе Matlab.Чтобы это произошло, вы должны добавить функцию сохранения / загрузки в comments
(т.е. каждый раз, когда вы что-либо меняете, вы записываете в файл, и каждый раз, когда вы запускаете функцию и database
пуста, вы загружаете файл, есливозможно).
function comments(name)
%COMMENTS stores comments for a matlab session
%
% comments(name) adds or updates a comment stored with the label "name"
%
% comments prints all the current comments
%# database is a n-by-2 cell array with {label, comment}
persistent database
%# check input and decide what to do
if nargin < 1 || isempty(name)
printDatabase;
else
updateDatabase;
end
function printDatabase
%# prints the database
if isempty(database)
fprintf('no comments stored yet\n')
else
for i=1:size(database,1)
fprintf('%20s : %s\n',database{i,1},database{i,2});
end
end
end
function updateDatabase
%# updates the database
%# check whether there is already a comment
if size(database,1) > 0 && any(strcmp(name,database(:,1)))
idx = strcmp(name,database(:,1));
comment = database(idx,2);
else
idx = size(database,1)+1;
comment = {''};
end
%# ask for new/updated comment
comment = inputdlg(sprintf('please enter comment for %s',name),'add comment',...
5,comment);
if ~isempty(comment)
database{idx,1} = name;
database(idx,2) = comment;
end
end
end