Javascript与MATLAB联合编程应用实例【AppDesigner开发必备】

作为MATLAB界面开发GUIDE的继承者,AppDesigner将是MATLAB未来界面不二选择。因其基于Web架构,使得可以更为方便地引入HTML、CSS、Javascript等前端开发语言,从让GUI开发世界变得缤纷多彩。相较于HTML与CSS,Javascript可谓是核心中的核心,它是实现各式各样功能的基石。今天咱就给小伙伴们讲讲如何在MATLAB中直接调用Javascript函数,从而实现MATLAB与Javascript的联合编程。

工欲善其事必先利其器,要实现在MATLAB中直接调用Javascript函数,首先需要准备好一款可在当前系统中执行Javascript语言的工具,咱这里推荐大家使用Node.js (nodejs.org/en/),直接下载推荐的版本即可。

(本图来源于:nodejs.org首页截图)

在准备好node.js之后,接下来就是直接上硬菜了。为了方便伙伴迅速入门并适应,咱就直接边上代码边讲过程了。

首先,咱先定义咱们的函数模块,取名为circlefun.js并保存好。因为要使用node.js来调用模块里面的函数,因此程序结尾处需要使用module.exports来声明待导出的函数名称,否则可能导致函数无法被识别。

// 作者:巴山(bashan) 自媒体平台账号: 懂科学的程序员
// 欢迎关注订阅 -> 懂科学的程序员

// 定义圆周率常数,定义最前面有全局变量之功效
const pi = 3.1415926;

// 计算周长函数,注:JavaScript定义函数的形式多种多样,此为其中一种
function circumference(r) {
    return 2*pi*r;
}

// 计算面积函数 
function area(r) {
    return pi*Math.pow(r,2);
}
// 计算体积函数
function volume(r) {
    return 4*pi*Math.pow(r,3)/3.0;
}

// 导出函数模块,此处为必须添加,不然函数名称将不被识别
module.exports = {circumference, area, volume};

其次,准备接口程序main.js。为了将功能模块与预处理部分分开,咱在此处人为做了一个接口函数。如果不想用接口函数,则自行直接将以下内容整合到circlefun.js中即可。

// 作者:巴山(bashan) 自媒体平台账号: 懂科学的程序员
// 欢迎关注订阅 -> 懂科学的程序员

// 处理输入变量以及加载相应的函数模块
const args = process.argv.slice(2);
let circlefun = require("./circlefun.js");

// 声明变量
var flag = args[1],results;

// 根据不同输入选择调用circlefun.js中不同的模块
switch (flag) {
    case "1": // 计算周长
        results = circlefun.circumference(args[0]);
        break;
    case "2": // 计算面积
        results = circlefun.area(args[0]);
        break;
    case "3": // 计算体积
        results = circlefun.volume(args[0]);
        break;
    default:
        results = circlefun.circumference(args[0]);
}
// 输出结果
console.log(results);

模块和接口准备好之后,接下来就是MATLAB的事情了。这里咱用system函数来作为执行node.js命令的工具,具体代码如下。需要注意的是node.js作为命令行命令时,是支持用户带参数输入的,具体的输入参数处理细节,请伙伴们自行参看node.js官方说明文档。


% 作者:巴山(bashan) 自媒体平台账号: 懂科学的程序员
% 欢迎关注订阅 -> 懂科学的程序员
% MATLAB与JavaScript联合编程案例

r = 2.5;
for k = 1:3
    % 使用system命令调用node.js执行main.js脚本
    [~, result] = system(['node main.js ' num2str(r),' ',num2str(k)]);
    % 此处result为字符串,若要转换为数值请用str2double或str2num
    switch(k)
        case 1
            disp(['半径为',num2str(r),'的圆的周长为:',result]);
        case 2
            disp(['半径为',num2str(r),'的圆的面积为:',result]);
        case 3
            disp(['半径为',num2str(r),'的圆的体积为:',result]);
    end
end

执行效果图

今日分享到此就接近尾声了,希望本文没有浪费点进来看的伙伴们的时间,有任何相关问题,欢迎留言。

祝伙伴们生活、工作愉快,有缘再见!!!

参考资料:

[1] mathworks.cn/help/matlab/ref/system.html

[2] nodejs.org

图片来源:由 Reimund Bertrams 在Pixabay上发布

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言、HTML和JavaScript是一些常用于联合开发编程语言和技术。 C语言是一种一般用途的编程语言,常用于系统级编程和嵌入式系统开发。它可以与HTML和JavaScript结合使用,在网页应用程序中实现更高级的功能。例如,使用C语言可以编写后端服务器代码,处理与数据库的交互,并提供API供网页前端访问。 HTML是一种标记语言,用于构建网页结构。它用于定义网页的内容和布局,包括文字、图像、链接等。C语言可以通过与HTML的交互,动态生成HTML内容,从而实现动态网页的开发。例如,在使用C语言编写的网站后端中,可以生成包含动态数据的HTML页面,并将其发送给浏览器以供用户访问。 JavaScript是一种脚本语言,用于为网页应用程序添加交互性和动态效果。通过与HTML和C语言的结合,可以实现更强大和交互性更强的应用程序。JavaScript可以与HTML结合,根据用户的操作动态地修改页面内容或进行表单验证。同时,它还可以通过与C语言后端的交互,使用AJAX技术从服务器获取数据并更新网页内容。 因此,C语言、HTML和JavaScript联合开发可以使开发者具备编写高级网页应用程序的能力。使用C语言编写后端代码,HTML定义页面结构和内容,JavaScript为页面添加交互和动态效果。这种联合开发的方式可以实现功能丰富、高度交互和动态性能的网页应用程序的开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值