Matlab--创建函数function
文章来源:
https://ww2.mathworks.cn/help/matlab/ref/function.html
1 语法
function [y1,…,yN] = myfun(x1,…,xM)
说明
示例
function [y1,…,yN] = myfun(x1,…,xM) 声明名为 myfun 的函数,该函数接受输入 x1,…,xM 并返回输出 y1,…,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。
您可以将函数保存在以下位置:
只包含函数定义的函数文件中。文件的名称须与文件中第一个函数的名称一致。
包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。
文件可以包含多个局部函数或嵌套函数。为提高可读性,可使用 end 关键字来表示文件中每个函数的末尾。以下情况下需要 end 关键字:
文件中有任意函数包含嵌套函数。
该函数是函数文件中的局部函数,并且文件中有局部函数使用 end 关键字。
该函数是脚本文件内的局部函数。
2 函数基本知识
function语法:function [y1,…,yN] = myfun(x1,…,xM),其中[y1,…,yN]为输出量,myfun为函数名,(x1,…,xM)为函数输入量。
有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。
三个小注意事项:
注意事项一:可以将函数保存在以下位置:
1、只包含函数定义的函数文件中。文件的名称应与文件中其函数的名称一致。
2、包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。
注意事项二:文件可以包含多个局部函数或嵌套函数。为提高可读性,可使用 end 关键字来表示文件中每个函数的末尾。以下情况下需要 end 关键字:
文件中有任意函数包含嵌套函数。
该函数是脚本文件内的局部函数。
注意事项三:
需要在代码文件中创建函数。
1、创建.m文件,.m文件中用关键字function定义函数,定义函数的格式如下:
function [输出变量] = 函数名称(输入变量)
输入变量和输出变量可以是一个,也可以是多个。
function [输出变量] = 函数名称(输入变量)
% 注释
% 函数体
2、保存.m文件时,一定要用函数名称保存.m文件。
举例如下:
function [a,b,c]=test(d,e,f)
a=d e;
b=e f;
c=f d;
end
保存文件为test.m文件。
函数的调用:
[q,w,e]=test(1,2,3)
注意: 函数调用的时候,不一定要用定义函数时所使用的参数字母。如
m1=1,m2=2,m3=3,
[h,j,k]=test(m1,m2,m3)
同样可以完成对自定义test函数的调用。
原文链接:https://blog.csdn.net/weixin_45176834/article/details/93996865
Qt 5.9 与 Matlab 2017b 混合编程基本流程
https://blog.csdn.net/hongandyi/article/details/79433623
https://blog.csdn.net/qq_33221028/article/details/78398408
遇到的问题2:
缺少一系列的matlab头文件。尝试解决办法:
这明显示路径包含没对,但是我翻来覆去的看,INCLUDEPATH貌似没问题啊,于是就采取笨方法将头文件拷贝到工程目录下,刚开始说好的只有一个,然后弄过来有出来一个,就是那种“子子孙孙无穷匮也”的感觉。这样我没坚持到2分钟就不行了,直接告诉我弄完要死人!没帮法回头检查pro文件吧。这下发现问题了,然后我就在心里对Qt竖起了中指。
这是我之前的路径,一般第一眼看,这能有什么问题,不就是在include目录下复制过来么?对你没看错,我是复制过来的,但是Qt教导我们说,年轻人不能偷懒!!!
INCLUDEPATH = $$quote(G:\Program Files\MATLAB\R2015b\extern\include)
这是修改后的:
INCLUDEPATH = $$quote(G:/Program Files/MATLAB/R2015b/extern/include)
TAT,就是那个“斜杆”啊,吐血三升!
遇到的问题3:
在Qt中运行时出现:“libmx库无法打开”之类的问题。尝试的解决办法:
这种问题一般是库没有被包含进来,路径有问题等,这此我学乖了,斜杆保证没打错!!
之前是这样的:
LIBS =-L $$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -llibmx
改后是这样的:
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -llibmx
哈哈,大Qt对格式要求就是严格,你不服么?
在Qt中使用matlab中的函数和普通函数差不多,但是要了解一些mxArray。此次测试的代码如下:
pro文件(,主要部分,这里很重要哦)
INCLUDEPATH = $$quote(G:/Program Files/MATLAB/R2015b/extern/include)
INCLUDEPATH = $$quote(G:/Program Files/MATLAB/R2015b/extern/include/win32)
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -llibmx
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -llibmat
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -llibeng
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -lmclmcr
LIBS =-L$$quote(G:/Program Files/MATLAB/R2015b/extern/lib/win32/microsoft) -lmclmcrrt
LIBS =-L$$quote(C:/Users/Y-305/Desktop/matlab/Add/for_testing) -lAdd
win32:CONFIG(release, debug|release): LIBS = -L$$PWD/C:/Users/Y-305/Desktop/matlab/Add/for_testing/ -lAdd
else:win32:CONFIG(debug, debug|release): LIBS = -L$$PWD/C:/Users/Y-305/Desktop/matlab/Add/for_testing/ -lAdd
else:unix: LIBS = -L$$PWD/C:/Users/Y-305/Desktop/matlab/Add/for_testing/ -lAdd
INCLUDEPATH = $$PWD/C:/Users/Y-305/Desktop/matlab/Add/for_testing
DEPENDPATH = $$PWD/C:/Users/Y-305/Desktop/matlab/Add/for_testing
原文链接:https://blog.csdn.net/qq_33221028/article/details/78398408
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggahbe
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13