matlab中自定义函数输入参数过多
这非常简单,直接把原来的变量名当成结构体的域名就可以了,例如 par.a=1;par.b=2;par.z=26;然后传递参数par给函数就可以了。
MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室),软件主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
推荐于2017-11-29
这非常简单,直接把原来的变量名当成结构体的域名就可以了,例如
par.a=1;
par.b=2;
....
par.z=26;
然后传递参数par给函数就可以了。
不好意思,我还是不太明白,是这样的,比如我要自定义一个函数,在M文件中没怎么写?是function mean(student),我希望student是一个结构体输入参数,要怎么写?
我猜测,你想要输入的参数student应该是包含多个学生,每个学生有姓名,以及数学、英语等课程的信息,是不是?
可以这样写:
student(1).name = 'zhang';
student(1).math = 60;
student(1).english = 70;
....
student(2).name = 'wang';
student(2).math = 60;
student(2).english = 70;
....
然后就可以mean(student)把数据都传递过去了(顺便提醒一下,mean是系统自带求平均值的函数,最好换个别的函数名)。
当然,上面只是用于说明问题,算不上太好的做法。正常情况下,把数据存放在一个文件里(例如Excel文件),程序直接读文件更方便。如果要把数据直接写在程序里,那也应该考虑使用cell数组存放数据,然后再用cell2struct转换成结构体,或者直接传递cell数组也可以。
你没把你的具体情况描述清楚,我只能回答到这个程度了。如果还有问题,请把你的情况描述清楚一点。