-2

我刚刚从 PC 切换到 Mac,我发现以前在我有 PC 时编写的许多 MATLAB 代码在我的 Mac 上不起作用!我已经在 MATLAB 上工作了一段时间,但我还不是专家。

在搜索了 PC 和 Mac 之间的差异后,我注意到确实有一些不同之处,但我很想知道是否需要检查我所有尚未编写的 MATLAB 代码并手动更新它以使其在我的 Mac 上工作.

请让我知道在这里做什么最好。

例子:

clear all
cd 'c:\users\sss\Desktop\MATLAB\project\DataFile\'
load data
cd ..

为什么这不起作用?是因为 Mac 上的 MATLAB 需要反斜杠吗?

4

2 回答 2

2

当然,如果你尝试在 Mac 上访问 Windows 风格的路径,就会出错。

MATLAB 包含一组函数,这些函数使您的代码跨平台处理这些问题变得相当容易。例如,看一下函数fullfilefilepartsfileseppathsepispcismac

恐怕目前,您可能需要使用上述功能重新编码为特定于 Mac 或跨平台的东西。

于 2013-09-23T09:34:01.663 回答
0

一种方法是设置路径变量或变量集,以确定数据的保存位置。你甚至可以使用computerorismacispc来自动切换到正确的版本:

if ispc
  dpath = 'c:\users\sss\Desktop\MATLAB\project\DataFile\';
elseif ismac
  dpath = '/Users/sss/MATLAB/project/DataFile/'; 
end
load (fullfile(dpath, 'data.mat'));

如果 /MATLAB/project/ 的子目录中有多个文件,则可以设置一个项目目录(类似于matlabroot但指向该项目的文件所在的位置),然后使用fullfile选择正确的子目录。

例如,给定根目录中的一个目录,该目录指向 /MATLAB/project/ 在相应计算机上的任何位置,它们会生成分别位于 /MATLAB/project/data 和 MATLAB/project/output 中的文件名:

datain = fullfile(proot, 'data','data.mat');
dataout = fullfile(proot,'output','output.mat');
于 2013-09-23T10:03:46.423 回答