【web】PHP网页调用Matlab代码的实现以及一些需要注意的bug~
目的:在一个PHP网页中调用matlab代码实现一些功能,比如处理数据,或者画图~
平台: linux+apache+php的服务器
实现: 正常情况下,我们在Linux客户端运行matlab代码时候 一般都是在terminal执行
$ matlab -nodesktop -nosplash -nodisplay -r "draw" (draw.m 这里假设是用来产生一个eps的图)
draw.m:
file=importdata('file.txt');
plot(file(:,1),file(:,2));
print('-deps2','-r300','figure.eps');
quit
我们在linux的环境下的中的某个用户demo_user,只要对MATLAB有执行权限(755)的话,是肯定能够执行的,并产生相应的figure.eps文件;
但是,如果你从网页端来访问并执行这样的代码的话可能会遇到的问题:
<?php
$command="matlab -nodesktop -nosplash -nodisplay -r \"draw\"";
system($command);
?>
第一: 执行上述代码的话,你会发现这句命令根本没有执行, $out= system($command, $val),$ val是反应有没有执行成功的,0是成功,1是失败;
那么怎么办呢?
首先就是要检查 php的配置是否支持调用外部命令,没开启的话,开启一下,这个网上有很多教程教如何开启php支持调用外部命令功能;
然后就是要来看为什么执行不了matlab程序, 将$command改为
$command="matlab -nodesktop -nosplash -nodisplay -logfile log.txt -r \"draw\" 1>out.txt 2>error.log";
来看到底出了什么错误导致php调用matlab失败的?
打开log.txt, 如果,matlab被启动的话,会有一些警告,说明matlab已经启动过了,但是为什么就执行不了你的代码呢 ?
后来我把2>errorl.log输出来,也就是把Matlab运行的error输出来看发现: fatal error on startup. MATLAB_PREFDIR must be an absolute path. Cannot set preferences directory to the relative path。 路径错了,应该是被调用的外部命令system的配置问题引起的; 后来我就在运行Matlab 命令前,加入 export MATLAB_PREFDIR=<your preference path>, 切记 一定要输入全路径。
<?php
$command="export MATLAB_PREFDIR= <your preference path>; matlab -nodesktop -nosplash -nodisplay -r \"draw\"";
system($command);
?>
加了路径之后就能够正常运行了。It works!
2016年11月24日
【web】PHP网页调用Matlab代码的实现以及一些需要注意的bug~相关推荐
- 网页中调用matlab,在C#的Web项目中调用Matlab代码的步骤
在C#的Web项目中调用Matlab代码的方法 为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延 ...
- Java和MATLAB混合编程,Java调用MATLAB代码
大家可能像我一样,是MATLAB 2014a或者MATLAB 2015a或者更高,因此找不到java package. 大家可能看到其他博客配置matlab 2013版本的,所以在这里就记录下MATL ...
- JAVA调用Matlab代码(MATLAB 2014a)
本人考虑到用java绘制图形以及实现一些计算效率不高,实现起来有些复杂.而利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,在某些情况下会更加方便.或者有些时候会涉及到使用Java ...
- 如何在python中调用MATLAB代码(利用anaconda完美解决多python环境问题)
不知道有没有小伙伴遇到和我一样的问题,需要在python代码中使用MATLAB代码运行得到的结果,但是如果直接将MATLAB改写成python,工作量又被加大 那么这时候就需要利用官方给出的方法,在p ...
- 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)
基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...
- matlab的灰色关联,灰色关联度Matlab代码
load x.txt %把原始数据存放在纯文本文件x.txt中,其中把数据的"替换替换成. for i=1:40 x(i,:)=x(i,:)/x(i,1); %标准化数据 end data= ...
- matlab代码转python过程中的小记录
文章目录 起因 一.怎样尽快将matlab代码转成Python? 二.怎样尽量加快计算? 三. 一不小心矩阵太大内存爆了怎么办? 结尾 起因 进一阵子因为需要用python来跑一些matlab的代码, ...
- matlab中调用java代码_Matlab中调用第三方Java代码
在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...
- webServices 应该支持Get和Post调用,在web.config应该增加以下代码
1 #region Tip:使用说明 2 //webServices 应该支持Get和Post调用,在web.config应该增加以下代码 3 //<webServices> 4 // & ...
最新文章
- android筛选cookie,服务器无法从Android手机识别Cookie
- linux 扩展zhu分区,Linux分区调整(LVM和非LVM环境中扩容和缩小)
- python spider code
- 学习笔记Flink(二)—— Flink数据流模型、时间窗口和核心概念
- linux安装apache下载文件,Linux安装apache详解
- Basler相机SDK相关问题收集与知识汇总
- Python 爬虫进阶五之多线程的用法
- 128_Power BI父级排名TOPN子级动态展示
- 【动态规划区间dp】蓝桥2019:最优包含
- 0-1背包问题(回溯算法)
- 安卓饼状图设置软件_android开源图表库MPAndroidChart(曲线图、直方图、饼状图)...
- cdcq原创题--pcr技术
- 技术设计的任务是将功能原理方案得以具体化
- Markdown目录生成
- 【学术】分享几种论文写作神器,提高你的写作效率
- 【POJ 1187】 陨石的秘密(dp)
- 【081】Remove-无需注册的在线免费抠图工具
- 抖音创作规范_干货:抖音内容规范,运营抖音的十五条经验!
- 《管理经济学》公式大全
- 计算机无法在安全模式下完成安装,最近我的电脑安装不了软件,总提示说Windows在安全模式下运行? 爱问知识人...