gpt4 book ai didi

matlab - 是否可以在 MATLAB 中强制对 LOAD 等文件操作区分大小写?

转载 作者:行者123 更新时间:2023-12-02 03:44:14 31 4
gpt4 key购买 nike

MATLAB 在调用函数时区分大小写,即使在 Windows 上也是如此:

>> edit Untitled
>> untitled
Cannot find an exact (case-sensitive) match for 'untitled'

有没有办法在 Windows 上对其他功能(如加载)强制区分大小写?

>> a = 3;
>> save a a
>> load A

问题是这段代码在 Windows 上运行良好,但如果我将它发送给 Unix 上的 friend ,就会出错。

最佳答案

无论您运行的是什么平台,强制处理文件的函数区分大小写的一种方法是为此类函数编写包装器。

例如,在 load 的情况下,我想到了以下直接替换:

function varargout = myload(fname, varargin)
% make sure filename ends with MAT extension
[~,~,ext] = fileparts(fname);
if isempty(ext), fname = [fname '.mat']; end

% open file (searching entire MATLAB path)
fid = fopen(fname,'r');
if fid < 0, error('file not found'); end

% get fullpath to opened file, and close file handle
filename = fopen(fid);
fclose(fid);

% extract the filename
[~,name,ext] = fileparts(filename);
filename = [name ext];

% compare against original name (case-sensitive)
if ~strcmp(fname,filename)
error('Cannot find an exact (case-sensitive) match for file');
end

% load the MAT-file
S = load(fname, varargin{:});

% assign output
if nargout > 0
varargout{1} = S;
else
fn = fieldnames(S);
for i=1:numel(fn)
assignin('caller', fn{i}, S.(fn{i}))
end
end
end

我可能在上面的实现中遗漏了一些案例,但你明白了..

关于matlab - 是否可以在 MATLAB 中强制对 LOAD 等文件操作区分大小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111428/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com