Matlab--创建函数(function)

Matlab--创建函数(function)

  • 1 语法
  • 2 函数基本知识

文章来源:
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

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

你可能感兴趣的:(MATLAB,安全,数据挖掘,网络协议)