Matlab 自定义函数

定义函数

函数单独保存一个可搜索到的文件
在这里插入图片描述

使用自定义函数

在这里插入图片描述

语法细节(可不看,上面内容太少,不让发,下面的是凑字数的)

%%
% 区分大小写
% 索引从1开始
% 五种数据类型(数字、字符与字符串、矩阵、元胞数组、结构体)
% sin() 等函数默认弧度制

%% 关键字    
inf   % 无穷大
eps   % 无穷小
Nan   % not a number   inf/inf
pi    % 圆周率
format %设置结果精确度和表示方式

%%
% 字符和字符串
s = 'a'
abs(s)
char(97)
length(s)

%%
% 矩阵
A = [1,2,3; 4,5,6; 7,8,9]
B = A'
C = A(:)
D = inv(A)  %求逆

E = zeros(10, 5, 3)            % 十行五列三维的矩阵
E(:, :, 1) = rand(10, 5)       % 生成 10 行 5 列的均匀分布的伪随机数
E(:, :, 2) = randi(5, 10, 5)   % 生成 最大值为 5 的 10 行 5 列的均匀分布的随机整数
E(:, :, 3) = randn(10, 5)      % 生成 10 行 5 列的标准正太分布的伪随机数(均值为 0 ,方差为 1)

%%
% 元胞数组
A = cell(1,6) 
A{2} = eye(3)     % 对角线为 1 的 3*3 的单位矩阵
A{5} = magic(5)   % 5阶的幻方
B = A{5}

%%
% 结构体
books = struct('name',{{'Machine Learning','Data Mining'}},'price',[30,40] )
books.name   
books.name(1)    % 取出cell
books.name{1}    % 取出值




%% Matlat矩阵操作
%%
% 1. 矩阵的定义与构造
A = [1 2 3 4 5 8 4 6]
B = 1: 2 : 9
C = repmat( B, 3, 1)
D = ones( 2, 4)

%%
% 2. 矩阵的四则运算
A = [1 2 3 4 ; 5 6 7 8]    % 一行元素可以用空格或逗号分隔
B = [1 1 2 3 ; 2 2 1 1]
C = A + B
D = A - B
E = A * B'    
F = A .* B   %  对应项相乘
G = A / B    % G = A * pinv(B)
H = A ./ B   %  对应项相除

%%
% 3.矩阵的下标
 A = magic(5)
 B = A(2, 3)
 C = A(3, :)             % : 代表全部
 D = A(:, 4)
 [m, n] = find(A > 20)   % : 找到矩阵中大于 20 的元素位置
 A([1 3 5])
 A ([1 3 ; 2 5])     
 A ([1 3],[2 5])
 A (1 : 10)
 A (2 : 2: 10)

 
 
 %% for循环
% for 循环变量 = 初值 : 步长 : 终值
%     执行语句1
%     .
%     .
%     .
%     执行语句n
% end
%步长是默认为1, 是一次循环 初值 向 终值 变化的多少

% 1^2 + 2^2 + 3^2 + 4^2 + 5^2
sum = 0
for n = 1: 5              %  等价于   for n = 1: 1: 5
    sum = sum + n^2
end


%% while循环
% while 条件表达式
%     执行语句1
%     .
%     .
%     .
%     执行语句n
% end

% 求 1 + 2 + 3 + ... + 10
s = 0;
n = 1;
while n <= 10
    s = s + n
    n = n + 1
end


%% if ... end 结构
% if 条件表达式
%     .
%     .
%     .
%     语句体
%     .
%     .
%     .
% end



%% if ... else ... end
% if 条件表达式
%     语句体1
% else
%      语句体2
% end


%% switch ... case ..end结构
%   switch 表达式(数字或字符串)
%       case 数字或字符串1
%               语句体 1;
%       case 数字或字符串2
%               语句体 2;
%       .
%       .
%       .
%       otherwise
%               语句体n;
%  end




%% 基本绘图操作
% 1. 二位平面绘图
x = 0: 0.01: 2*pi ;
y = sin(x) ;
figure                 % 建立一个幕布
plot(x, y)             % 绘制二维图
title('y = sin(x)')    % 设置标题
xlabel('x')            % 给 x 轴命名标签
ylabel('sin(x)')       % 给 y 轴命名标签 
xlim([0 2*pi])         % 设置曲线在 x 轴的范围

x = 0: 0.01: 20
y1 = 200 * exp(-0.05*x).*sin(x);
y2 = 0.8 * exp(-0.5*x).*sin(10*x);
figure
[AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); % 共用一个 x 轴,y轴有不通取值 默认不通线不通颜色
set(get(AX(1),'Ylabel'),'String','Slow Decay')
set(get(AX(2),'Ylabel'),'String','Fast Decay')
xlabel('Time (\musec)')
title('Multiple Decay Rates')
set(H1,'LineStyle','--')
set(H2,'LineStyle',':')


%%
% 2.三维立体绘图
t = 0:pi/50:10*pi;
plot3(sin(t),cos(t),t)
xlabel('sin(t)')
ylabel('cos(t)')
zlabel('t')
grid on     % 加网格线
axis square %空间正方形



%%
x = sparse(magic(20)>395)   %生成20的稀疏矩阵




  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值