使用Matlab函数的问题eps2pdf

时间:2018-06-09 21:16:04

标签: matlab

我有一个Matlab脚本,我在其中生成一个图形,然后使用该命令在当前目录中创建一个eps文件 打印(' MYFILE'' -depsc&#39)。紧接着,我有: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 :(得分:1)

这不是标准功能。如果您阅读该函数,您将看到它为此返回的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(filename)打开文件,文件名,用于二进制读取   访问,并返回等于或大于的整数文件标识符   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