sử dụng run
, nó sẽ cho phép bạn sử dụng chức năng riêng của bạn thay vì được xây dựng-in mà không thêm chúng vào con đường.
Taken từ sự giúp đỡ:
Chạy kịch bản đó không phải là trên con đường hiện tại Cú pháp
chạy Tập lệnh
Như @Cheery nói một cách chính xác, nó có thể không được sử dụng cho các chức năng chấp nhận lập luận. Tuy nhiên, run.m
là tệp có thể sửa đổi, vì vậy tôi đã tạo phiên bản mở rộng, có thể chấp nhận đối số. Nó có thể được sửa đổi cho các đối số đầu ra cũng khá dễ dàng.
function runExtended(script,varargin)
cur = cd;
if isempty(script), return, end
if ispc, script(script=='/')='\'; end
[p,s,ext] = fileparts(script);
if ~isempty(p),
if exist(p,'dir'),
cd(p)
w = which(s);
if ~isempty(w),
% Check to make sure everything matches
[wp,ws,wext] = fileparts(w);
% Allow users to choose the .m file and run a .p
if strcmp(wext,'.p') && strcmp(ext,'.m'),
wext = '.m';
end
if ispc
cont = ~strcmpi(wp,pwd) | ~strcmpi(ws,s) | ...
(~isempty(ext) & ~strcmpi(wext,ext));
else
cont = ~isequal(wp,pwd) | ~isequal(ws,s) | ...
(~isempty(ext) & ~isequal(wext,ext));
end
if cont
if exist([s ext],'file')
cd(cur)
rehash;
error('MATLAB:run:CannotExecute','Can''t run %s.',[s ext]);
else
cd(cur)
rehash;
error('MATLAB:run:FileNotFound','Can''t find %s.',[s ext]);
end
end
try
feval(s,varargin{:});
% evalin('caller', [s ';']);
catch e
cd(cur);
rethrow(e);
end
else
cd(cur)
rehash;
error('MATLAB:run:FileNotFound','%s not found.',script)
end
cd(cur)
rehash;
else
error('MATLAB:run:FileNotFound','%s not found.',script)
end
else
if exist(script,'file')
evalin('caller',[script ';']);
else
error('MATLAB:run:FileNotFound','%s not found.',script)
end
end
end
Thư viện lớn đến mức nào và bạn sẽ làm việc với nó bao nhiêu? Bạn muốn gọi các chức năng của nó từ mã của bạn bao lâu một lần? Có mã OO trong thư viện không? –