2013-09-22 3 views
-2

Я только что переключился с ПК на Mac, и я обнаружил, что много моего кода MATLAB, ранее написанного, когда у меня был компьютер, не работает на моем Mac! Я уже давно работаю над MATLAB, но пока не эксперт.Портирование кода MATLAB с Windows на Mac

После поиска отличий между ПК и Mac я отметил, что некоторые вещи действительно отличаются друг от друга, но мне бы хотелось услышать о том, нужно ли мне пройти весь мой написанный мной код MATLAB и обновить его вручную, чтобы сделать это работайте на моем Mac.

Пожалуйста, дайте мне знать, что лучше всего делать здесь.

Пример:

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

Почему это не работает? Это из-за обратной косой черты, необходимой для MATLAB на Mac?

+0

Что не Работа? Можете привести пример? – chappjc

+0

Дело в том, что я не знаю ни одного кода, который я написал на Mac, который НЕ работал для пользователей ПК, которых я поддерживал, когда я это делал. Так жаль, что у вас проблемы, но этот вопрос на самом деле не вопрос, а скорее напыщенная речь. –

+0

Я работал с MATLAB на ПК. Теперь я просто переключился на MAC и передал все мои коды Matlab на мой MAC. Я попытался запустить одну из моих письменных функций, чтобы просмотреть сюжет, и он не работает. – sophie

ответ

2

Конечно, если вы попытаетесь получить доступ к пути в стиле Windows на Mac, это приведет к ошибке.

MATLAB включает в себя набор функций, которые делают его довольно простым, чтобы сделать ваш код кросс-платформенным по отношению к этим типам проблем. Посмотрите, например, на функции fullfile, fileparts, filesep, pathsep, ispc и ismac.

Я боюсь, что на данный момент вам, вероятно, придется перекодировать вещи как в Mac, так и в кросс-платформенные, используя перечисленные выше функции.

0

Один из способов - указать переменные пути или переменные, определяющие, где хранятся ваши данные. Вы даже можете использовать computer или ismac и ispc автоматически переключаться на правильную версию:

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/проекта /, вы можете установить каталог проекта (аналогично matlabroot, но указывая где хранятся ваши файлы для этого проекта), а затем используйте fullfile, чтобы выбрать правильный подкаталог.

например. данный каталог в proot, что указывает на везде, где/MATLAB/проект/на соответствующем компьютере, они производят имена файлов, которые находятся в/Matlab/проекта/данных и MATLAB/проекта/вывода соответственно:

datain = fullfile(proot, 'data','data.mat'); 
dataout = fullfile(proot,'output','output.mat'); 
Смежные вопросы