目的:在一个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~相关推荐

  1. 网页中调用matlab,在C#的Web项目中调用Matlab代码的步骤

    在C#的Web项目中调用Matlab代码的方法 为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延 ...

  2. Java和MATLAB混合编程,Java调用MATLAB代码

    大家可能像我一样,是MATLAB 2014a或者MATLAB 2015a或者更高,因此找不到java package. 大家可能看到其他博客配置matlab 2013版本的,所以在这里就记录下MATL ...

  3. JAVA调用Matlab代码(MATLAB 2014a)

    本人考虑到用java绘制图形以及实现一些计算效率不高,实现起来有些复杂.而利用MATLAB写好相应的计算函数,然后打包成jar包供Java调用,在某些情况下会更加方便.或者有些时候会涉及到使用Java ...

  4. 如何在python中调用MATLAB代码(利用anaconda完美解决多python环境问题)

    不知道有没有小伙伴遇到和我一样的问题,需要在python代码中使用MATLAB代码运行得到的结果,但是如果直接将MATLAB改写成python,工作量又被加大 那么这时候就需要利用官方给出的方法,在p ...

  5. 客户端+调用+matlab,基于web的android图像处理示范(Win7+Apache+PHP+Matlab+Android)

    基于web的android图像处理示例(Win7+Apache+PHP+Matlab+Android) 本文将介绍C/S模式的图像处理系统.C/S的框架已经在[1]中作了简单的介绍.[2]中介绍了如何 ...

  6. matlab的灰色关联,灰色关联度Matlab代码

    load x.txt %把原始数据存放在纯文本文件x.txt中,其中把数据的"替换替换成. for i=1:40 x(i,:)=x(i,:)/x(i,1); %标准化数据 end data= ...

  7. matlab代码转python过程中的小记录

    文章目录 起因 一.怎样尽快将matlab代码转成Python? 二.怎样尽量加快计算? 三. 一不小心矩阵太大内存爆了怎么办? 结尾 起因 进一阵子因为需要用python来跑一些matlab的代码, ...

  8. matlab中调用java代码_Matlab中调用第三方Java代码

    在Java中采用Matlab JA Builder可以实现调用m文件,采用这样的方式,可在Matlab的M文件中,直接调用Java类.这种方式可以表示为Java--> Matlab( m, Ja ...

  9. webServices 应该支持Get和Post调用,在web.config应该增加以下代码

    1 #region Tip:使用说明 2 //webServices 应该支持Get和Post调用,在web.config应该增加以下代码 3 //<webServices> 4 // & ...

最新文章

  1. android筛选cookie,服务器无法从Android手机识别Cookie
  2. linux 扩展zhu分区,Linux分区调整(LVM和非LVM环境中扩容和缩小)
  3. python spider code
  4. 学习笔记Flink(二)—— Flink数据流模型、时间窗口和核心概念
  5. linux安装apache下载文件,Linux安装apache详解
  6. Basler相机SDK相关问题收集与知识汇总
  7. Python 爬虫进阶五之多线程的用法
  8. 128_Power BI父级排名TOPN子级动态展示
  9. 【动态规划区间dp】蓝桥2019:最优包含
  10. 0-1背包问题(回溯算法)
  11. 安卓饼状图设置软件_android开源图表库MPAndroidChart(曲线图、直方图、饼状图)...
  12. cdcq原创题--pcr技术
  13. 技术设计的任务是将功能原理方案得以具体化
  14. Markdown目录生成
  15. 【学术】分享几种论文写作神器,提高你的写作效率
  16. 【POJ 1187】 陨石的秘密(dp)
  17. 【081】Remove-无需注册的在线免费抠图工具
  18. 抖音创作规范_干货:抖音内容规范,运营抖音的十五条经验!
  19. 《管理经济学》公式大全
  20. 计算机无法在安全模式下完成安装,最近我的电脑安装不了软件,总提示说Windows在安全模式下运行? 爱问知识人...

热门文章

  1. okhttp3调用接口超时
  2. 如何从零开始学习SEM?
  3. 使用unbound在RHEL7上搭建DNS服务
  4. PMP是什么?PMP证书在国用处大吗?
  5. tp5欢迎页 (获取系统信息)
  6. iOS 全息备份研究
  7. mysql SELECT/UPDATE command denied to user 'root'@'localhost' for table 'XXX' 报错1142处理
  8. 用正割对数计算积分的方法
  9. IDEA插件-XTools
  10. 逆向——微信接收文本图片消息