我有一个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>
答案 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);