如何在linux服务器运行中运行自己写的matlab程序

下次自动登录
现在的位置:
& 综合 & 正文
Linux下MATLAB中运行MATLAB程序并在web中显示结果
webtttt.html
webtttt1.html
webtttt2.html
webtttttempt.html
webttttrnd.m
.webtttt1.html
&!-- $Revision: 1.2 $ --&
&frame scrolling=auto
src="webtttt.html"
name="leftframe"
marginwidth=10
marginheight=1
frameborder=0&
&frame scrolling=auto
src="webtttttemp.html"
marginwidth=0 marginheight=0
name="outputwindow" frameborder=0&
webtttt.html
action="/cgi-bin/matweb" method="POST" target="outputwindow"&
&input type="hidden" name="mlmfile" value="webttttrnd"&
&table border="2"&
&td width="140" align="right"&
&td width="161" align="left"&
&select name="signalone" id="signalone"&
&option value="door"&Door&/option&
&option value="triangle"&Triangle&/option&
&option value="3"&ttttttttttt&/option&
&td colspan="2" align="center"&
&input type="text" align="middle" size = "20" value="rectpuls(t,2)" name="oneval"&
&td height="30" align="right"&
&select name="signaltwo" id="signaltwo"&
&option value="door"&Door&/option&
&option value="triangle"&Triangle&/option&
&option value="13"&ttttttttttt &/option&
&td height="28" colspan="2" align="center"&&input type="text" size = "20" value="tripuls(t,1)" name="twoval"&&/td&
&td height="33" align="right"&
&td align="left"&
&input type="text" size = "10" value="-2" name="time1"&
&td height="33" align="right"&
&td align="left"&
&input type="text" size = "10" value="2" name="time2"&
&td height="33" align="right"&
&input type="text" size = "10" value="2" name="moving"&
&td height="33" align="right"&
&input type="text" size = "10" value="2" name="change"&
&td colspan="2" align="center"&
&input type="submit" name="Submit" value="
&td width="145"&
&div align="right"&
&input type="submit" name="Submit" value="f1(t)+f2(t)"&
&/div&&/td&
&td width="166"&
&input type="submit" name="Submit" value="f1(t)-f2(t)"&
&div align="right"&
&input type="submit" name="Submit" value="f1(t)f2(t)"&
&/div&&/td&
&input type="submit" name="Submit" value="f1(t-b)"&
&div align="right"&
&input type="submit" name="Submit" value="f1(-t)"&
&/div&&/td&
&input type="submit" name="Submit" value="f1(at)"&
&div align="right"&
&input size="20" type="submit" name="Submit" value="f1(at-b)"&
&/div&&/td&
&input size="80" type="submit" name="Submit" value="&/td&
.webttttrnd.m
function PageString=webttttrnd(InputSet, OutFile)
cd(InputSet.mldir);
wscleanup('wsrml*.jpeg', 1);
%functname1=InputSet.
%functname2=InputSet.
functname3=InputSet.S
t0=str2double(InputSet.time1);
t1=str2double(InputSet.time2);
b=str2double(InputSet.moving);
a=str2double(InputSet.change);
global signal1;
signal1=InputSet.
signal2=InputSet.
t=-100:dt:100;
y1=eval(signal1);
Fig = figure('visible','off');
subplot(3,2,[1,2]);
max_y=max(y1);min_y=min(y1);
plot(t,y1,'linewidth',2);dy=0.2;
axis([t0,t1,min_y-dy,max_y+dy]);
title('');
set(gca,'FontSize',8);
%myplot(t,y1);
y2=eval(signal2);
subplot(3,2,[3,4]);
max_y=max(y2);min_y=min(y2);dy=0.2;
plot(t,y2,'linewidth',2);
axis([t0,t1,min_y-dy,max_y+dy]);
set(gca,'FontSize',8);
if(strcmp(functname3,'f1(t)+f2(t)'))
elseif(strcmp(functname3,'f1(t)-f2(t)'))
elseif(strcmp(functname3,'f1(t)f2(t)'))
y3=y1.*y2;;
elseif(strcmp(functname3,'f1(t-b)'))
y3=zdyf(t-b);
elseif(strcmp(functname3,'f1(-t)'))
y3=zdyf(-t);
elseif(strcmp(functname3,'f1(at)'))
y3=zdyf(a.*t);
elseif(strcmp(functname3,'f1(at-b)'))
y3=zdyf(a.*t-b);
elseif(strcmp(functname3,''))
f1=zdyf(t);
f2=zdyf(-t);
y3=(f1+f2)/2;
y4=(f1-f2)/2;
if(exist('y3') & exist('y4')==0)
subplot(3,2,[5,6]);
max_y=max(y3);min_y=min(y3);dy=0.2;
plot(t,y3,'linewidth',2);
axis([t0,t1,min_y-dy,max_y+dy]);
set(gca,'FontSize',8);
elseif(exist('y3') & exist('y4'))
subplot(3,2,5);
max_y=max(y3);min_y=min(y3);dy=0.2;
plot(t,y3,'linewidth',2);
axis([t0,t1,min_y-dy,max_y+dy]);
set(gca,'FontSize',8);
subplot(3,2,6);
max_y=max(y4);min_y=min(y4);dy=0.2;
plot(t,y4,'linewidth',2);
axis([t0,t1,min_y-dy,max_y+dy]);
set(gca,'FontSize',8);
PlotFile = sprintf('wsr%s.jpeg', InputSet.mlid);
wsprintjpeg(Fig, PlotFile);
close(Fig);
templatefile = which('webtttt2.html');
if ( exist('OutFile','var') == 1 )
% write Page to a diagnosticile
s.GraphFileName = [ PlotFile];
PageString = htmlrep(s, templatefile, OutFile);
s.GraphFileName = ['/icons/' PlotFile];
PageString = htmlrep(s, '/usr/src/matlab/toolbox/webserver/wsdemos/webtttt2.html');
function y=zdyf(t)
global signal1;
y=eval(signal1);
5 webtttt2.html
&!-- $Revision: 1.1 $ --&
&body bgcolor="#FFFFFF"&
&p&&nbsp&/p&
&p align="center"&
&img border=0 src="$GraphFileName$"&//$GraphFileName
1:webtttt.html
webtttt1.html
webtttttempt.html
webtttt2.html
webttttrnd.mLinux&matlab&/toolbox/webserver/wsdemos/
进入matlab下的webserver执行webtart(./start)
5:当出现Error using ==& feval Undefined command/function 'webttttrnd' 可以赋755的权限给webttttrnd.m
在确实解决不了,可重装一个Linux系统在其中装matlab后在试试(本人就是遇到这个问题搞了几天都没解决,最后重装了linux再在其中装matlab再在其中试居然成功了)
&&&&推荐文章:
【上篇】【下篇】小木虫 --- 600万学术达人喜爱的学术科研平台
热门搜索:
&&查看话题
linux下如何设置脚本文件让matlab自动运行程序?
在linux下运行程序,每次程序运行完成之后总要自己去看看是不是运行完了,该挂程序了,自己再去挂程序,有没有一劳永逸的办法,我写个脚本,运行脚本,让它看到程序运行完成就就自动执行某个程序。
比如:a.m文件,我在里面挂了10个a.m当然每个文件生成的文件名字是不同的,不会出现覆盖的情况的。但是第3个a.m运行完成之后,有个核就空下来了,不能闲着啊?如果在深更半夜我要自己起来挂程序,太累了,编个脚本,让它自动运行。
最好能告诉我怎么去运行这个脚本
多谢,这点提示足够了。文章能顺利完成的话希望能在文章后面感谢小木虫。:cool::cool::cool:没有你们的帮助,我很难一个人搞啊。
http://emuch.net/bbs/viewthread.php?tid=5293259
可以关注下这个帖子吗?我很着急啊 ,关于怎么产生不同随机数的。、
学术必备与600万学术达人在线互动!
扫描下载送金币1115人阅读
C++和matlab混合编程(12)
错误及解决(14)
在通过mcc将.m函数编译成动态链接库供c++调用的方式实现了c++程序调用matlab的m函数的功能。本文将尝试另外一种途径,通过matlab引擎来实现c++调用matlab中自己编写的m函数。既然,配置完以后就可以通过引擎提供的函数engEvalString,向matlab发送命令。直接调用matlab自带的函数(比如:plot,
besselj等等都可以直接用了。),那么也就意味着只需要让matlab能找到自定义的m函数就可以。下面做了个小实验。平台是:ubuntu 12.04.5 + g++4.6 + matlab2012a。
问题描述:
有一个c++程序main.cpp,和一个matlab函数myFunc.m。现在要做这件事:
1)从main.cpp中传递一个1行5列的double类型的array到myFunc.m中
2)myFunc.m中求和
3)main.cpp中接收myFunc.m返回的和并输出。
在c++中输入这些数值,然后c++函数启动matlab引擎将这些值传递到myFunc.m中,运算后的结果通过引擎传递回c++。因为matlab引擎专门提供了一套接口将c/c++和matlab数据类型进行转换,实现2者的通讯。比如:engEvalString,engPutVariable,engGetVariable等。
1)myFunc.m内容如下:
function [ c ] = myFunc(A)
% for c++ to get the return value, myFunc must have a return value
c = sum(A);
end2)编写main.cpp,它通过matlab engine来调用matlab中的函数myFunc.m
#include &iostream&
#include &math.h&
#include &engine.h&
#include &string.h&
#include &vector&
int main() {
const int N = 5;
// 定义Matlab引擎指针。
if (!(ep=engOpen(&\0&))) //if start successfully, the pointer ep will not be NULL.
cout&& &Can't start MATLAB engine!&&&
return EXIT_FAILURE;
// 定义一个一维数组
double cArray[N];
// input some numbers, just for test.
cout&&&Please input &&&N&&& numbers, seperated by space. Then press enter! &&&
cin && cArray[0] && cArray[1] && cArray[2] && cArray[3] && cArray[4];
//定义mxArray,为M行,N列的实数数组。
mxArray *xx = mxCreateDoubleMatrix(1, N, mxREAL);
//将c++数组中的值复制到对应的mxArray中
memcpy(mxGetPr(xx), cArray, N*sizeof(double));
//将mxArray数组xx写入到Matlab工作空间,命名为xx。
engPutVariable(ep, &input_data&, xx);
// 调用自己的函数,求和。
engEvalString(ep, &addpath('~/WorkSpace/matlabEngine_example2');&);
engEvalString(ep, &RESULT=myFunc(input_data);&); // 1. the computation result is set to RESULT
mxArray *result = engGetVariable(ep, &RESULT&);
// 2. get the result
double *p = mxGetPr(result); //p[0]就是计算结果
cout&&&C++ output: the sum of all the elements is: & && p[0] &&
//释放内存
mxDestroyArray(xx);
mxDestroyArray(result);
engClose(ep); //关闭Matlab引擎。
return EXIT_SUCCESS;
3)编译,运行,结果展示
$ g++ -o main main.cpp -leng -lmx
Please input 5 numbers, seperated by space. Then press enter!
C++ output: the sum of all the elements is: 25
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:222604次
积分:2849
积分:2849
排名:第12433名
原创:82篇
评论:37条
(1)(1)(4)(1)(2)(1)(1)(1)(5)(7)(2)(11)(24)(22)(1)Linux服务器命令行模式安装Matlab2014a,有需要的朋友可以参考下。
0.下载安装包&
下载Matlab2014a for Linux安装包的ISO镜像文件(感谢万能的度娘)以及破解包(下载地址:)
假设破解包解压后的位置为~/Downloads/Crack
将下载好的iso文件挂载
mount -o loop /home/Downloads/MATHWORKS_R2014A. /media/cdrom
1. 安装准备&1.1 JDK&
从oracle官方网站下载JDK7,当前版本为jdk1.7.0_71。(注:openjdk似乎有兼容性问题,另外matlab2014a目前不兼容JDK8)
将解压好的-7u71-linux-x64.tar.gz移动到/usr/lib//jdk1.7.0_71中
sudo mv jdk1.7.0_71 /usr/lib/jvm/jdk1.7.0_71
sudo vi /etc/profile
在文件末尾添加&
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_71
保存并推出,然后使用下面的命令是设置生效&
source /etc/profile
修改系统的默认&
sudo update-alternatives --install /usr/bin/java java /usr/lib//1.7.0_71/bin/java 300
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_71/bin/javac 300
sudo update-alternatives --config java
sudo update-alternatives --config javac
输入java -version,看到如下信息则表明设置成功&
version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
1.2 创建安装目录&
sudo mkdir -p /usr/local/matlab/etc
sudo mkdir -p /usr/local/matlab/2014a
2.安装&2.1 编辑配置文件&
将配置文件拷贝到/usr/local/matlab/etc中
sudo cp /media/cdrom/installer_input.txt /usr/local/matlab/etc
sudo cp /media/cdrom/activate.ini /usr/local/matlab/etc
sudo cp ~/Downloads/Crack/ &span style="font-family: Arial, Helvetica, sans-"&/usr/local/matlab/etc&/span&
修改文件的读写属性&
chmod +w /usr/local/matlab/etc/installer_input.txt
chmod +w /usr/local/matlab/etc/activate.ini
编辑installer_input.txt文件,按如下内容设置配置项&
destinationFolder=/usr/local/matlab/2014a #安装目录
fileInstallationKey= - #序列号,似乎可以随便写
agreeToLicense=yes #同意协议
outputFile=/tmp/mathwork_install.log #安装日志
mode=silent #开启无人值守安装
activationPropertiesFile=/usr/local/matlab/etc/activate.ini #激活文件
licensePath= /usr/local/matlab/etc/license_14a.lic #license文件
编辑activate.ini文件,按如下内容设置
isSilent=true #开启silent模式
activateCommand=activateOffline #设置激活方式, 离线激活 无需联网
licenseFile=/usr/local/matlab/etc/license_14a.lic #license文件位置
执行如下安装命令
sudo /media/cdrom/install -inputFile /usr/local/matlab//installer_input.txt
安装完成后,对matlab进行破解
sudo mv /usr/local/matlab/bin/glnxa64/libmwservices.so /usr/local/matlab/bin/glnxa64/libmwservices.so.bak
sudo cp ~/Downloads/Crack/Linux/libmwservices.so /usr/local/matlab/bin/glnxa64/
使用如下命令激活
sudo /usr/local/matlab/2014a/bin/activate_matlab.sh -propertiesFile /usr/local/matlab/etc/activate.ini
2.4 设置环境变量&
sudo vi /etc/profile
在文件末尾添加
export PATH=/usr/local/matlab/2014a/bin:$PATH
保存并退出后使设置生效
source //profile
安装完成。
3.常见问题&3.1 安装时提示挂载后的镜像文件input/output error&
可以尝试把iso文件解压(注意:非挂载)到一个文件夹后再进行安装
3.2 安装时提示eval: 1: /tmp/mathworks_15227/java/jre/glnxa64/jre/bin/java: Permission denied
将iso文件解压到一个文件夹,然后进入其sys/java/jre/xxx/jre/bin目录,执行命令
chmod a+x *
然后从解压的文件夹进行安装
3.3 安装时提示找不到libjli.so&
这个错误是由于链接器没有libjli.so所在的文件夹造成的。修改文件/etc/ld.so.conf
sudo vi //ld.so.conf
在文件末尾添加如下内容&
/usr/lib/jvm/jdk1.7.0_71/lib/amd64/jli
保存并推出,然后执行
/sbin/ldconfig -v
3.4 安装时提示找不到sys/java/jre/glnxa64/jre/lib/amd64//libjvm.so&
将iso文件解压,然后进入其sys///glnxa64/jre/lib/amd64/文件夹,执行如下命令
server.bak
cp -r /usr/lib/jvm/jdk1.7.0_71/jre/lib/amd64/server .
然后使用解压后的进行安装
3.5 安装时提示找不到sys/java/jre/glnxa64/jre/lib/amd64/headless/libmawt.so&
将文件解压,然后进入其sys///glnxa64/jre/lib/amd64/,执行如下命令
mv headless headless.bak
cp -r /usr/lib//1.7.0_71/jre/lib/amd64/headless .
然后使用解压后的文件夹进行安装
阅读(...) 评论()

我要回帖

更多关于 linux服务器运行 的文章

 

随机推荐