Проблемы с использованием функции Matlab eps2pdf - PullRequest
0 голосов
/ 10 июня 2018

У меня есть скрипт Matlab, в котором я создаю рисунок, а затем создаю файл eps в моем текущем каталоге с помощью команды print ('myFile', '- depsc').Сразу после этого у меня есть: mypdf = eps2pdf ('myFile').

Я получаю сообщение об ошибке «Ошибка при создании временного файла eps: ..... невозможно получить доступ или не существует».

У кого-нибудь была подобная проблема?Любые предложения, что я могу делать не так?Я использую Ubuntu и Matlab 2017a.


Вот пример кода, который я печатаю в командной строке.Я получаю сообщение об ошибке, которое я изложил выше.


figure()
plot(linspace(1,100),linspace(1,100)) %Simple line
print('my_plot','-depsc')  %Create eps file.
mypdf = eps2pdf('my_plot'); %Should produce mypdf in my current directory.
<error message prints>

1 Ответ

0 голосов
/ 10 июня 2018

Это не стандартная функция.Если вы прочитаете функцию, вы увидите errStr, который она возвращает для этого.

function [ok,errStr] = read_epsfilecontent( epsFile )
% Reads the content of the eps file into epsFileContent
global epsFileContent

ok = 0;
errStr = [];
fh = fopen(epsFile,'r');
if fh == -1
    errStr = ['File: ' epsFile ' cannot be accessed or does not exist'];
    return
end

Затем мы выясняем, когда fopen возвращает -1

fileID = fopen (имя файла) открывает файл, имя файла для двоичного доступа для чтения и возвращает целочисленный идентификатор файларавно или больше 3. MATLAB® резервирует идентификаторы файлов 0, 1 и 2 для стандартного ввода, стандартного вывода (экрана) и стандартной ошибки соответственно.

Если fopen не может открыть файл, то fileIDравно -1.

Это означает, что, пожалуйста, опубликуйте часть своего кода, чтобы мы могли выяснить, почему он не может открыть ваш файл.

Редактировать: После некоторого обхода, и нет необходимости загружать код, я решил вашу проблему.Существует другая реализация, которая называется eps2xxx Во время выполнения вашего кода я получил эту ошибку

Ошибка при создании временного файла eps: * .eps - Файл: C: \ Users \ Ryan \ DocumentsДоступ к \ MATLAB * .eps невозможен или не существует

Что привело меня к информации в документации здесь.

% Create tmp file,...
[ok,errStr] = create_tmpepsfile(source,tmpFile,orientation);
if ~ok
    status = ['Error while creating temporary eps file: ' epsFile ' - ' errStr];
    if nargout,      result = 1;    end;
    if nargout > 1,  msg = status;  else, disp(status); end;

И я прочитал, что вам нужен GhostScript, я не был уверен, что у меня это все равно есть.Я скачал его и дал полный путь к GS, как показано ниже.

figure()
fullgspath = 'C:\Program Files\gs\gs9.23\bin\gswin64c.exe';
plot(linspace(1,100),linspace(1,100)); %Simple line
print('my_plot','-depsc');
eps2xxx('my_plot.eps',{'pdf'},fullgspath);

, который создал ваш симпатичный маленький pdf здесь. enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...