文章来源:
https://ww2.mathworks.cn/help/matlab/ref/function.html
function [y1,…,yN] = myfun(x1,…,xM)
说明
示例
function [y1,…,yN] = myfun(x1,…,xM) 声明名为 myfun 的函数,该函数接受输入 x1,…,xM 并返回输出 y1,…,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。
您可以将函数保存在以下位置:
只包含函数定义的函数文件中。文件的名称须与文件中第一个函数的名称一致。
包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。
文件可以包含多个局部函数或嵌套函数。为提高可读性,可使用 end 关键字来表示文件中每个函数的末尾。以下情况下需要 end 关键字:
文件中有任意函数包含嵌套函数。
该函数是函数文件中的局部函数,并且文件中有局部函数使用 end 关键字。
该函数是脚本文件内的局部函数。
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
http://www.buyige.net/?p=158
遇到的问题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