⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于matlab的web应用开发.htm

📁 VC与Matlab混合编程文章.
💻 HTM
📖 第 1 页 / 共 2 页
字号:

      <P class=a14><IMG src="基于MatLab的Web应用开发.files/c05_4t1.jpg"> 
      <P class=a14>图1MatLab Web应用原理结构图 
      <P class=a14>由图1可知,MatLab 
      Web应用必须基于某一标准的Web服务环境,浏览器客户通过TCP/IP协议请求Web服务器中的文档,而MatLab 
      Web服务代理筛选所有的请求,如果是MatLab Web请求,则将其交由MatLab 
      Web服务程序处理,否则由标准的Web服务器进行处理。在设置MatLab Web应用环境时,其中MatLab 
      Web服务代理必须与系统的Web服务器安装在同一台机器上,而与MatLab 
      Web服务程序则可以在同一台机器中,也可在不同的机器中。在具体实现时,还必须对MatLab Web服务代理与MatLab 
      Web服务程序进行适当的配置,这分别通过文件matweb.conf与matlabserver.conf来实现。下面用实例的方式来说明具体的设置过程。 

      <P class=a14>应用实例开发 
      <P class=a14>下面是以通过输入函数自变量的变化范围、步长及函数后,借助MatLab Web应用实现函数作图的实例来说明开发MatLab 
      Web应用的基本步骤。 
      <P class=a14>1.请求MatLab Web服务的HTML文档 
      <P class=a14>请求MatLab 
      Web服务的HTML文档主要完成两方面的功能,一方面是接收浏览器用户的输入,这与一般的Web应用的处理方法相同,可以通过HTML的表单来实现;另一方面是设置一个特殊的标志,将该请求重定向到MatLab 
      Web服务代理进行处理,它的实现方法也与一般的CGI程序调用方法相同。下面是一个简单的实例代码(文件名:func.htm)。 
      <P class=a14>&lt;html&gt;&lt;title&gt;函数作图演示&lt;/title&gt;&lt;body&gt; 
      <P class=a14>&lt;center&gt;&lt;h1&gt;函数作图演示&lt;/h1&gt;&lt;/center&gt; 
      <P 
      class=a14>&lt;h3&gt;请注意:加法用记号“plus”,而减法用记号“minus”&lt;/h3&gt;&lt;table&gt; 
      <P class=a14>&lt;form action=“/cgi-bin/matweb.exe” method=“POST” 
      target=“outputwindow”&gt; 
      <P class=a14>&lt;input type=“hidden” name=“mlmfile” value=“functest”&gt; 
      <P class=a14>&lt;tr&gt;&lt;td&gt;Start x: &lt;/td&gt; 
      <P class=a14>&lt; td&gt;&lt; input type=“text” size =“5” value=0 
      name=“startx”&gt; 
      <P class=a14>&lt; /td &gt;&lt; /tr &gt;&lt; tr &gt;&lt; td &gt;Step x:&lt; 
      /td &gt; 
      <P class=a14>&lt; td&gt; &lt; input type=“text” size =“5” value=0.001 
      name=“stepx”&gt;&lt; /td &gt;&lt;/tr &gt;&lt; tr &gt;&lt; td &gt; End 
      x:&lt; /td &gt; 
      <P class=a14>&lt; td &gt; &lt;input type=“text” size =“5” value=10 
      name=“endx”&gt;&lt; /td &gt;&lt; /tr &gt;&lt; tr &gt;&lt; td &gt; 
      Function:&lt; /td &gt; 
      <P class=a14>&lt; td &gt; &lt;input type=“text” size =“100” value=“sin(x)” 
      name=“funcname”&gt;&lt;/td&gt;&lt;/tr&gt; 
      <P class=a14>&lt;tr&gt;&lt;td&gt; &lt;input type=“submit” name=“Submit” 
      <P class=a14>value=“Submit”&gt;&lt;/td&gt; 
      <P class=a14>&lt; td &gt; &lt;input type=“reset” name=“reset” 
      value=“reset”&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/form&gt;&lt;/table&gt;&lt;/body&gt;&lt;/html&gt; 

      <P 
      class=a14>该文件中最关键的部分是代码中用斜体标明的两行代码,即Form标记的Action属性的设置及隐输入框mlmfile(参数名固定),其值为将在MatLab 
      Web服务程序中运行的m文件的文件名。 
      <P 
      class=a14>另外,为了方便使用,可以将浏览器窗口分为上下两个部分,上部分用于输入,下部分用于显示运行结果或图形。该框架页面(文件名为funcexample.htm)的HTML代码如下: 

      <P class=a14>&lt;html&gt;&lt;title&gt;函数功能演示&lt;/title&gt; 
      <P class=a14>&lt;frameset rows=“300,*" border=0 frameborder=“0"&gt; 
      <P class=a14>&lt;frame scrolling=auto src=“func.htm” name=“topframe” 
      marginwidth=10 marginheight=1 frameborder=0&gt; 
      <P class=a14>&lt;frame scrolling=auto src=“dummy.html” marginwidth=0 
      marginheight=0 name=“outputwindow” frameborder=0&gt; 
      <P class=a14>&lt;/frameset&gt;&lt;/html&gt; 
      <P class=a14>2.MatLab Web应用的设置 
      <P class=a14>MatLab Web应用的设置工作主要是对MatLab Web服务代理的设置,即每增加一个MatLab 
      Web应用,都需要在代理服务的配置文件matweb.conf中增加一项配置。如上面的输入html表单中的m文件的文件名为functest,相应地,需要在matweb.conf中增加下面的内容: 

      <P class=a14>[functest] 
      <P class=a14>mlserver=192.1.2.1 
      <P class=a14>mldir=e:/inetpub/wwwroot/icons 
      <P class=a14>mldir1=192.1.2.1 
      <P class=a14>其中mlserver=192.1.2.1指明MatLab 
      Web服务程序所在机器的IP地址,而下面两行主要是MatLab工作目录的设置及应用中可能用到的全局变量的设置。 
      <P class=a14>3.MatLab应用程序的开发 
      <P class=a14>MatLab应用程序主要具有以下3个方面的功能: 
      <P class=a14>接收输入HTML表单中的输入值; 
      <P class=a14>调用MatLab中内置的各种函数进行科学计算或作图; 
      <P class=a14>将计算结果或生成的图形通过适当的方法输出到HTML页面,并将这些结果返回给最终用户。 
      <P class=a14>部分代码如下(应用函数名为:functest.m): 
      <P class=a14>Function PageString = functest(InputSet, OutFile) 
      <P class=a14>cd(InputSet.mldir); 
      <P class=a14>% 清除1个小时以前的旧图形 
      <P class=a14>wscleanup(‘func*.jpeg’, 1); 
      <P class=a14>Fig = figure(‘visible’,‘off’); 
      <P class=a14>% 接收输入值,并进行转换 
      <P class=a14>startx = str2double(InputSet.startx); 
      <P class=a14>stepx = str2double(InputSet.stepx); 
      <P class=a14>endx = str2double(InputSet.endx); 
      <P class=a14>x=(startx:stepx:endx); 
      <P class=a14>S=InputSet.funcname; 
      <P class=a14>len=length(S); 
      <P class=a14>for i=1:4:(len-4) 
      <P class=a14>po=findstr(S,‘plus’); 
      <P class=a14>if po&gt;0 
      <P class=a14>S(po)=‘ ’; 
      <P class=a14>S(po+1)=‘+’; 
      <P class=a14>S(po+2)=‘ ’; 
      <P class=a14>S(po+3)=‘ ’; 
      <P class=a14>end 
      <P class=a14>end 
      <P class=a14>for i=1:5:(len-5) 
      <P class=a14>po=findstr(S,‘minus’); 
      <P class=a14>if po&gt;0 
      <P class=a14>S(po)=‘ ’; 
      <P class=a14>S(po+1)=‘ ’; 
      <P class=a14>S(po+2)=‘-’; 
      <P class=a14>S(po+3)=‘ ’; 
      <P class=a14>S(po+4)=‘ ’; 
      <P class=a14>end 
      <P class=a14>end 
      <P class=a14>% 计算或作图 
      <P class=a14>plot(x,eval(S)); 
      <P class=a14>ylabel(‘Function Test’); 
      <P class=a14>title([‘******函数:’ S ‘的图像*******’]); 
      <P class=a14>pos = get(gcf, ‘position’); 
      <P class=a14>pos(3) = 380; 
      <P class=a14>pos(4) = 310; 
      <P class=a14>set(gcf,‘Position’, pos,‘PaperPosition’,[.25 .25 4 3]); 
      <P class=a14>PlotFile = sprintf(‘func%s.jpeg’, InputSet.mlid); 
      <P class=a14>drawnow; 
      <P class=a14>wsprintjpeg(Fig, PlotFile); 
      <P class=a14>close(Fig); 
      <P class=a14>% 对输出模板进行处理,生成输出HTML文件 
      <P class=a14>templatefile = which(‘functempate.htm’); 
      <P class=a14>if ( exist(‘OutFile’,‘var’)== 1 ) 
      <P class=a14>s.GraphFileName = [ PlotFile]; 
      <P class=a14>PageString = htmlrep(s, templatefile, OutFile); 
      <P class=a14>else 
      <P class=a14>s.GraphFileName = 
      [sprintf(‘http://%s/icons/’,InputSet.mldir1)PlotFile]; 
      <P class=a14>PageString = htmlrep(s, templatefile); 
      <P class=a14>end 
      <P class=a14>4.显示运行结果的HTML模板的开发 
      <P 
      class=a14>在上面的MatLab应用程序中,最后的结果输出部分调用了用于输出的HTML模板functemplate.htm,下面是该文件的部分代码,其中最重要的部分是标记“$......$”中包含的变量部分,在MatLab应用程序中通过函数htmlrep,使用输出结构中相应的变量值对这些标记进行替换。 

      <P class=a14>&lt;html&gt;&lt;body bgcolor=“#FFFFFF”&gt; 
      <P class=a14>&lt;p&gt;&nbsp&lt;/p&gt;&lt;p align=“center”&gt; 
      <P class=a14>&lt;img border=0 
      src=“$GraphFileName$”&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt; 
</P></TR></TBODY></TABLE>
<TABLE align=center width=680>
  <TBODY>
  <TR>
    <TD>
      <HR color=#f46240 SIZE=1 width=660>
    </TD></TR></TBODY></TABLE><BR>
<P align=center>Copyright(C) ccw.com.cn,All rights reserved</P>
<P align=center><B>中国计算机世界出版服务公司版权所有</B></P></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -