数学建模速成!两小时零基础入门MATLAB教程(六)—— 定义和调用函数
MATLAB定义函数
文章目录
- MATLAB定义函数
- 1. 常见问题
- 2. 如何定义
- 2.1语法
- 2.2举例
- 3. 如何使用
- 3.1 得到返回值
- 3.2 将定义的函数作为参数传递给其他函数(函数指针)
1. 常见问题
与主流高级语言的区别
MATLAB没有函数指针这种玩意
所以MATLAB中定义函数必须在.m文件中定义, 不能跟主脚本定义在一起
比如下面这样是不允许的
% nonlcon函数定义
function [g, h] = nonlcon(x)g = [-x(1)^2 + x(2) - x(3)^2, x(1) + x(2)^2 + x(3)^2 - 20];h = [-x(1) - x(2)^2 + 2, x(2) + 2 * x(3)^2 - 3];
end% fun函数定义
function res = fun(x)res = sum(x.^2) + 8;
end[x, fval] = fmincon('fun', rand(3, 1), [], [], [], [], zeros(3, 1), [], 'nonlcon', [])
会报错 “Function might be unused”
解决办法
MATLAB只支持在.m文件中定义函数
创建.m文件, File->New->Function
创建一个新的文件
在文件中定义函数
2. 如何定义
MATLAB只支持在.m文件中定义函数
首先创建.m文件, File->New->Function
创建一个新的文件
2.1语法
function 返回值 = 函数名(参数)函数体
end
2.2举例
function [g, h] = nonlcon(x)g = [-x(1)^2 + x(2) - x(3)^2, x(1) + x(2)^2 + x(3)^2 - 20];h = [-x(1) - x(2)^2 + 2, x(2) + 2 * x(3)^2 - 3];
end
- 返回值[g, h]
- 函数名nonlcon
- 参数可以多个, 这里参数是x
3. 如何使用
记得把定义的函数保存并且跟主脚本放在一个目录, 或者添加到路径
3.1 得到返回值
假设函数名为fun
且已经定义
res = fun(x)
3.2 将定义的函数作为参数传递给其他函数(函数指针)
假设函数名为fun
且已经定义
另一个函数func
需要将函数 fun
作为参数传递进去
res = func('fun') % 用字符串的形式引用函数名作为参数
数学建模速成!两小时零基础入门MATLAB教程(六)—— 定义和调用函数相关推荐
- 数学建模速成! 两小时零基础入门 MATLAB 教程(一)—— Matlab常用操作和基本语法
Matlab常用操作和基本语法 没有涉及到编程的内容, 就是介绍一些MATLAB软件的操作, 和简单的语法如注释输出之类的 目录 文章目录 Matlab常用操作和基本语法 1. help查看函数说明 ...
- 视频教程-5小时零基础入门小程序云开发-微信开发
5小时零基础入门小程序云开发 码农一枚,非著名全栈开发人员.分享自己的一些经验,学习心得,希望后来人少走弯路,少填坑. 多年全栈开发经验,擅长小程序,java,安卓,web前端开发. 邱石 ¥29.0 ...
- 【157.1】golang+beego零基础入门实践教程it营大地
go 在线工具 6.goLang语言基本数据类型 -整型详解 package main import "fmt" func main () {//1.定义int类型var num ...
- 输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出。要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其
输入一个正整数n,再输入n个学生的姓名和百分制成绩,将其转换为两级制成绩后输出.要求定义和调用函数set_grade(stu, n),其功能是根据结构数组stu中存放的学生的百分制成绩score,将其 ...
- python做动画视频教程_Python零基础入门动画教程
课程答疑: QQ群:913293727 适用人群 在校大学生/应届毕业生/业余编程爱好者/初.中开发学习者/大中专院校师生/数据分析人员/技术支持/测试人员 课程概述--课程大纲-- 1.Python ...
- 小甲鱼零基础入门python教程视频_绝对干货!小甲鱼零基础入门Python视频教程全套96集,值得学习...
原标题:绝对干货!小甲鱼零基础入门Python视频教程全套96集,值得学习 简介: 今日分享资源为:小甲鱼零基础入门免费学习Python全套教学视频,共96套. 小甲鱼教学视频生动有趣幽默,强烈推荐给 ...
- Arduino UNO新手零基础入门学习教程博客汇总
写在开头 最近在上Arduino的课,可以说Arduino对新手来说非常友好了,因为相比于51和32,Arduino的库函数下载就好,不需要自己去写,就很方便 我的硬件设备 这个是学校提供的硬件设备, ...
- HTML零基础入门详细教程
欢迎来到HTML的零基础入门教程.HTML是构建网页的基础,是Web开发的必备技能之一.在本教程中,我们将介绍HTML的基础知识,包括HTML的基本结构.标签.属性等内容.让我们开始吧! 1. HTM ...
- 教你如何系统地学习3d建模!教你零基础入门,初学者看过来
一.3D建模工作岗位 要是想从事3D建模,其中还有很工作岗位的.角色模型制作是较与场景模型制作,吃香很多,并且薪资更高. 3D建模是一个总称,在我们公司的项目上,3D建模分为:3D低模手绘(场景/角色 ...
最新文章
- TF-IDF算法原理介绍
- oracle 查看日志组切换状态_Oracle 11g ADG 快照备库切换步骤
- C# WinForm获取 当前执行程序路径的几种方法
- 【CyberSecurityLearning 63】CSRF攻击
- python类的应用_Python · 元类(Meta Class)及其应用
- 06-对图像进行腐蚀操作
- 【CodeForces - 266B 】Queue at the School (模拟)
- 浙江移动智能语音服务器,接口说明
- “ ModuleNotFoundError: No module named ‘tkinter‘ “的解决方法
- 学习了1!+...10!
- 如何使用Global Mapper分幅导出地图
- 砂岩浮雕让雕刻更加美观
- MySQL(5)条件查询 | 单行函数 | 事务详解
- 华为S5700_交换机_基础管理配置
- PBI Report Builder 报表设计与可视化
- 2019的百度网盘下载速度太慢老是限速怎么解决?
- html怎么打出一个圆点,如何打出两个字中间的圆点
- Activity毛玻璃背景效果
- 情景剧《重走长征路》上演
- 第三方支付接入之支付宝当面付
热门文章
- c语言中鱼贯指针的编程题,泡面吧 IT宅男如何打造编程教学网站
- python模块之HTMLParser简介
- 拨号宽带服务器无响应是什么意思,宽带拨号服务器无响应
- 高清壁纸软件 FreshBackMac for Mac 1.9.2免费版
- 航空发动机适航复习纲要
- WRF中使用ERA5再分析数据
- 在HTML中如何加入一个PDF文件,怎么给pdf文件插入页面?
- 运用计算机辅助设计的药物实例,计算机辅助设计在药物研发中的应用现状探究...
- 计算两张图像之间的PSNR和SSIM值
- GIS中的坐标系问题