Matlab数学建模4.3

编程入门 行业动态 更新时间:2024-10-09 18:24:00

Matlab数学<a href=https://www.elefans.com/category/jswz/34/1769748.html style=建模4.3"/>

Matlab数学建模4.3

目录

4.3 参数传递函数

4.3.1 输入和输出参数的数目

4.3.2 可变数目的参数传递

4.3.3返回被修改的输入参数

4.3.4 全局变量

4.4 插值函数

4.4.1 一维插值命令及案例

4.4.2 二维插值命令及案例

4.4.3 样条插值


4.3 参数传递函数


        matlab中的参数传递是传值传递,传入的实际变量赋值为形式参数指定的变量名,储存在函数中,与工作区变量空间彼此独立。每个函数调用都有独立的函数空间。


4.3.1 输入和输出参数的数目

        通过natgin和nargout函数,确定调用时实际传递的输入和输出参数情况。

function [n1,n2]=mythe(m1,m2)
if nargin==1n1=m1;if nargout==2n2=m1;end
elseif nargout==1n1=m1+m2;elsen1=m1;n2=m2;end
end

4.3.2 可变数目的参数传递

        使用varargin和varargout函数实现可变参数的参数传递,将函数调用时传递的参数封装成一个元胞数组。

function y=myth(x)
a=0;
for i=1:1:length(x)a=a+mean(x(i));
end
y=a/length(x);

4.3.3返回被修改的输入参数

        matlab函数具有独立于工作区之外的变量空间,因此输入参数在函数内部的修改,如果不指定将此修改后输入的参数值返回到工作空间,则函数调用结束后,修改后的值都将被自动清除

        (1)函数内部输入参数修改

function y=mythe(x)
x=x+2;
y=x.^2;

        (2)返回matalb工作区

function [y,x]=mythee(x)
x=x+2;
y=x.^2;

4.3.4 全局变量

        使用全局变量从函数内部修改matlab工作区变量。使得matlab工作空间和函数空间共享。global variable。

function y=myt(x)
global a;
a=a+9;
y=cos(x);

        调用

global a
a=2
myt(pi)
a

4.4 插值函数


        数字信号和图像处理中。插值函数保存在matlab工具箱的polyfun工具箱中。


4.4.1 一维插值命令及案例

        使用interp1()实现。找出一元函数f(x)在中间点的数值。


4.4.2 二维插值命令及案例

clear all
clc
[x,y]=meshgrid(-5:1:5);						%原始数据
z=peaks(x,y);
[xi,yi]=meshgrid(-5:0.8:5);						%插值数据
zi_nearest=interp2(x,y,z,xi,yi,'nearest');				%临近点插值
zi_linear=interp2(x,y,z,xi,yi);					%系统默认为线性插值
zi_spline=interp2(x,y,z,xi,yi,'spline');				%三次样条插值
zi_cubic=interp2(x,y,z,xi,yi,'cubic');				%三次多项式插值
figure;									%数据显示
hold on;
subplot(321);
surf(x,y,z);									%绘制原始数据点
title('原始数据');
subplot(322);
surf(xi,yi,zi_nearest);							%绘制临近点插值的结果
title('临近点插值');
subplot(323);
surf(xi,yi,zi_linear);							%绘制线性插值的结果
title('线性插值');
subplot(324);
surf(xi,yi,zi_spline);							%绘制三次样条插值的结果
title('三次样条插值');
subplot(325);
surf(xi,yi,zi_cubic);							%绘制三次多项式插值的结果
title('三次多项式插值');

注意事项:

(1)二维插值中已知数据(x,y)必须是栅格格式,一般用meshgrid产生。

(2)interp2要求已知数据必须严格单调。

(3)如果数据(x,y)在平面上分布不等间距,则interp2会将其转化为等间距。如果数据已经等间距,则可以在method参数前面加星号‘*’,例如‘cubic’变为‘*cubic’,来提高插值速度。


4.4.3 样条插值

        三次样条插值可以采用函数spline。

clear all
clc
x = [0 2 4 5 8 12 12.8 17.2 19.9 20];  
y = exp(x).*sin(x);
xx = 0:.25:20;
yy = spline(x,y,xx);
plot(x,y,'o',xx,yy)

更多推荐

Matlab数学建模4.3

本文发布于:2024-02-19 16:07:33,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765106.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:建模   数学   Matlab

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!