• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Matlab--创建函数function

武飞扬头像
宁静致远2021
帮助1

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggahbe
系列文章
更多 icon
同类精品
更多 icon
继续加载