当我在64位Matlab中运行此代码时,它显示“此功能只能在MS Windows或Linux上运行”。
% Call the binary executable
fpath = fileparts(which(mfilename));
if strncmp(computer,'PC',2) % MS Windows
exec_str = ['"' fpath '/xcv_segment.exe"'];
elseif strcmp(computer,'GLNX86') % Linux
exec_str = [fpath '/xcv_segment'];
else error('This function can run only with MS Windows or Linux');
end
出于这个原因,我尝试安装lib-32以安装glnx86。
sudo -i
cd /etc/apt/sources.list.d
echo "deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse" >ia32-libs-raring.list
apt-get update
apt-get install ia32-libs
然后,我运行此命令来安装32位matlab:./install -glnx86
安装完成后,我运行相同的代码。但是,它会继续发出相同的消息:'This function can run only with MS Windows or Linux'.
答案 0 :(得分:0)
computer
功能会检查您正在运行的操作系统。它不是与外部二进制文件相关的错误(在代码中此时甚至不会被调用)或Matlab版本。它是if/elseif
段阻止您继续前进。
在命令行运行computer
,您将看到输出与Matlab版本无关。
您可以通过更改elseif
接受glxna64来更改该代码以接受64位linux,无论它是否运行外部二进制文件都是另一回事。
答案 1 :(得分:0)
对于64位linux机器,matlab命令computer
返回字符串'GLNXA64',你试图与'GLNX86'进行比较。
您的错误与无法在64位matlab中运行32位二进制文件无关,因为您的代码未达到尝试执行此操作的程度。 (ifs将你带到错误处)
答案 2 :(得分:-3)
使用像WINE这样的程序。 WINE帮助Windows可执行文件和DLL库在Linux上运行。