MATLAB社区

MATLAB,社区等

交互式网页的MATLAB,第2部分

最后一次,我描述了如何使用静态超链接从web浏览器运行MATLAB命令(记住:这只适用于MATLAB的web浏览器)。这一次,我将向您展示如何使用JavaScript进行组装和执行matlab:命令。

我们如何超越使用显式超链接来发出MATLAB命令?JavaScript中的超链接点击等效操作是设置document.location属性设置为所需的URL。

的加载事件触发冲浪命令。当页面在MATLAB的web浏览器中加载时,将自动创建一个图形窗口和曲面图。

当你打开这个示例文件(单击右键保存)在MATLAB网络浏览器中,其中包括下面的代码…

< html >
从JavaScript 1调用MATLAB
<身体onload = " document.location = matlab:冲浪(山峰)”> < /身体> < / html >

你会看到一个空白的浏览器窗口(文件中没有真正的可显示内容),然后你会看到一个图形窗口弹出:


MATLAB web浏览器中的matlabfromjs1.html

在图形窗口中浏览(峰值)

在本例中需要注意的一点是HTML中的JavaScript函数onload事件被指定为字符串,文档URI是一个单独的字符串。在本例中,单引号(')是在双引号(")字符串中指定字符串的方式,与MATLAB字符串无关。

我们现在如何使MATLAB命令动态,以便网页用户可以影响发生的事情?首先,我们可以读入控件的值,并在URI字符串中使用该值。

下一个示例(右键保存)使用HTML表单向用户显示控件。当按下按钮时,MATLAB将(在图形窗口中)绘制给定振幅和频率的正弦波并绘制外观。

MATLAB Web浏览器与正弦波演示

按下“绘制正弦波”按钮产生以下图形:

html图形窗口输出

在头文件中,我创建了以下脚本块:

<脚本type = " text / javascript”>
函数drawsin () {
commandURI = " matlab: t = linspace(0, 1100);“;
commandURI + =”情节(t)”;
commandURI + = document.sine.amplitude.value;
commandURI + = " * sin (t * 2 *π*”;
commandURI+=document.sin .frequency.value + ")";
commandURI+=",'" + document.sin .color.value +
document.sine.linestyle.value +
document.sin .markerstyle.value + "'";
commandURI + = "); ";
document.location = commandURI;

> < /脚本

关于这段代码的几个关键点包括:

  1. 的代码matlab:URI并将其作为单独的JavaScript函数执行drawSine ()在网页的页眉。
  2. 为了提高可读性,我将命令分解为几行,并使用+ =字符串连接的语法。
  3. 我使用直接命名语法访问表单元素中的数据。这个语法要求我们给出一个显式的名字到我们的每个表单和输入元素。
  4. JavaScript代码不会检查输入框中的有效数据,错误值会在命令窗口中产生错误(对于只在web浏览器中查看的人来说可能不明显)。

在主体表单中,有两个文本输入、三个选择元素和一个按钮输入。下面的代码创建按钮:



这是动态构建MATLAB命令URI字符串的起点。我已经向您展示了如何使用HTML表单收集要传递给MATLAB函数的输入。如果你知道HTML和MATLAB的其他有趣用法,或者遇到一些棘手的问题,请告诉我们。

下次我将通过将图形放回网页中来完成教程,创建一个完整的GUI。

看看这篇文章的第一部分:

有关HTML表单编程的一般信息,请参见:

有关JavaScript编程的一般信息,请参见:

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。