MATLAB基础学习day2

2024Matlab小白入门详细教程_matlab教程-CSDN博客

目前基于以上链接继续查漏补缺(在会Python编程以及用过几次MATLAB之后),在MATLAB中整理出自己未掌握的内容如下:

%% 
% 16.循环结构
% (1)for循环
% for 变量=表达式
%   执行语句
% end
% 表达式一般为:m,s,l  s默认为1,表示间隔,可以为负数;m表示开始;l表示结束。
% 也可以是向量
for a = 1: -0.1: 0
   disp(a)
end

for a = [1 2 3 4 5 6]
   disp(a)
end
% (2)while循环
% while 表达式
%   语句组
% end
i=0;
sum=0;
while(i<=100)
    sum=sum+i;
    i=i+1;
end
fprintf('累加和为: %d \n', sum);  %遍历1-100,并求和
% (3)嵌套循环
% for m = 1:j
%    for n = 1:k
%       语句;
%    end
% end
for i = 2:100
   for j = 2:100
      if(~mod(i,j)) 
         break; % 可以被除尽,就不是质数
      end 
   end
   if(j > (i/j))
      fprintf('%d 是质数\n', i);  %求1-100内所有质数
   end
end 
% (4)break,continue语句
% break语句。终止循环语句,并将执行转移到循环之后的语句。
% continue语句。跳过当前循环的其余部分,直接执行下次判断,进入下次循环。
%% 
% 17.函数
% (1)普通函数
% function 输出形参表 = 函数名(输入形参表)
% % 写一点关于函数的摘要
% % 写一点参数说明
% 	函数体语句
% end
function y= f(x)
%   x为一个整数
if x>0
    y=2*x;
elseif x==0
    y=0;
else
    y=x*x;
end
disp(y)
end           %新建"函数"并保存,然后运行y=f(2)

y=f(3)
% (2)匿名函数
% f = @(变量列表)表达式
close all;
clc;
b=@(x)(sin(x)+cos(x)); %创建关于x的匿名函数
c=b(pi) %带入pi

d=@(x,y)(sin(x)+cos(y)) %创建x和y的匿名函数
e=d(pi/2,pi/2) %带入pi值测试

% (3)嵌套函数(不建议使用)
% function x = A(p1, p2)
% ...
%    function y = B(p3)
%    ...
%    end
% ...
% end
function [x1,x2] = qiantao2(a,b,c) 
%定义函数qiantao2计算一元二次函数
d=0; %初始化
function disc 
d = sqrt(b^2 - 4*a*c); %计算d
end 
disc; %输出d
x1 = (-b + d) / (2*a);
x2 = (-b - d) / (2*a);
end        %新建"函数"并保存,然后运行qiantao2(1,2,3)
qiantao2(1,2,3)
% (4)全局变量
% 函数中申明变量为全局变量,可由多个函数共享。
% 命令行中申明全局变量,工作区可访问该变量。
% 全局申明必须在函数实际使用变量前发生。
% 创建脚本输入代码:
function avg = average(nums)
global TOTAL
avg = sum(nums)/TOTAL;
end                %新建"函数"并保存,然后运行

global TOTAL;
TOTAL = 10;
n = [34, 45, 25, 45, 33, 19, 40, 34, 38, 42];
av = average(n)
%% 
% 18.数据可视化
% (1)绘图基本命令
% 1)plot()命令打开基本图窗
x = [0:3:60];
y = x;
plot(x, y)
% 2)xlabel、.ylabel、title、grid on命令
% xlabel和ylabel命令沿x轴和y轴生成标签
% title命令可以图形上放置标题
% grid on命令可以将网格线放在图形上
% axis equal命令可以生成相同比例和轴上的空格的绘图
% axis square生成正方形图
x = [0:0.01:10];
y = cos(x);
plot(x, y), xlabel('x'), ylabel('cos(x)'), title('cos(x) Graph'),
grid on, axis equal
% 3)plot(x1,y1,x2,y2)
% 同一个图形绘制多个函数,只需在plot()命令中传入多个x,y即可。
x = [0 : 0.01: 10];
y1 = sin(x);
y2 = cos(x);
plot(x, y1, x, y2, '.-'), legend('Sin(x)', 'Cos(x)')
% 4)常见颜色代码
% w白,k黑,b蓝,r红,c青,g绿,m品红,y黄
x = [-10 : 0.01: 10];
y = 3*x.^5 + 2 * x.^3 + 7 * x.^2 + 2 * x + 9;
g = 5 * x.^3 + 9 * x + 2;
plot(x, y, 'r', x, g, 'g')
% 5)axis()设置轴刻度
% axis ( [xmin xmax ymin ymax] )
x = [0 : 0.01: 10];
y = exp(-x).* sin(2*x + 3);
plot(x, y), axis([0 10 -0.6 0.6])
% 6)subplot()生成子图
% subplot(x,y,z) %共x行y列现在第z个
x = [0:0.01:5];
y = exp(-1.5*x).*sin(10*x);
subplot(1,2,2)
plot(x,y), xlabel('x'),ylabel('exp(–1.5x)*sin(10x)'),axis([0 5 -1 1])
y = exp(-2*x).*sin(10*x);
subplot(1,2,1)
plot(x,y),xlabel('x'),ylabel('exp(–2x)*sin(10x)'),axis([0 5 -1 1])
% (2)散点图
% scatter()绘制
x=[75;78;51;82;77;88;41;78;78;61;71;74;62;81;75;64;80;72;51;80;56;73];
y1=[208;146;168;149;208;102;130;155;163;154;145;147;143;161;145;120;153;158;123;163;177;148];
scatter(x,y1)    %直接绘制,默认颜色

scatter(x,y1,'g')  %填充颜色绘制为绿色

c = linspace(1,10,length(x)); %创建向量

scatter(x,y1,[],c)     %彩色绘制

sz = 25;
c = linspace(1,10,length(x));
scatter(x,y1,sz,c,'filled')   %彩色绘制并填充
% (3)条形图bar()
x = [1:4]; %x个数一定要与y个数对应
y = [94,54,65,87];
bar(x,y) %使用bar函数
xlabel('科目')
ylabel('成绩')
title('条形图')
% (4)概率分析图 
% 1)正整数的频率表
% tabulate(X) %X为正整数构成的向量,返回3列:
% 第1列中包含X的值,第2列为这些值的个数,第3列为这些值的频率
A=[1 2 2 5 6 38]
tabulate(A)
% 2)经验累积分布函数图形
% cdfplot(X) %作样本X(向量)的累积分布函数图形
% h = cdfplot(X) %h表示曲线的环柄
% [h,stats] = cdfplot(X) %stats表示样本的一些特征
X=normrnd(0,1,50,1)  %r = normrnd(mu,sigma,sz1,...,szN) 生成正态随机数数组,其中 mu为均值,sigma为标准差,r = normrnd(mu,sigma,sz1,...,szN) 生成正态随机数数组.
[h,stats]=cdfplot(X)
h
stats  %min:样本最小值;max:最大值;mean: 平均值;median:中间值;std: 样本标准差
% 3)最小二乘拟合曲线
% lsline   %最小二乘拟合直线
% h = lsline   h为直线的句柄
X = [2 3.4 5.6 8 12.3 13.8 16 18.8 19.9]';
plot(X,'*')
lsline
% 4) 绘制正态分布概率图形
% normplot(X) %若X为向量,则显示正态分布概率图形,
% 若X为矩阵,则显示每一列的正态分布概率图形。
X=normrnd(0,1,50,1);
normplot(X)
% 5)样本数据的盒图,类似箱线图
boxplot(X) %产生矩阵X的每一列的盒图和“须”图,“须”是从盒的尾部延伸出来,并表示盒外数据长度的线,
% 如果“须”的外面没有数据,则在“须”的底部有一个点。
% boxplot(X,notch) %当notch=1时,产生一凹盒图,notch=0时产生一矩箱图。
% boxplot(X,notch,'sym') %sym表示图形符号,默认值为“+”。
% boxplot(X,notch,'sym',vert) %当vert=0时,生成水平盒图,
% vert=1时,生成竖直盒图(默认值vert=1)。
% boxplot(X,notch,'sym',vert,whis)%whis定义“须”图的长度,默认值为1.5,
% 若whis=0则boxplot函数通过绘制sym符号图来显示盒外的所有数据值。
x1 =normrnd(5,1,100,1);
x2 =normrnd(6,1,100,1);
x = [x1 x2];
boxplot(x,0,'g+',1,0)
% 其余详情参考csdn文章http://t.csdnimg.cn/YIfRZ
% (5)读取excel画图
%data=xlsread('文件路径')  
%x=data(:,2); %第2列的全部
%y=data(1:100,6); %2到100行的第6列
%plot(x,y) ; %绘制曲线 
%参考:http://t.csdnimg.cn/1kQ0N
%% 
% 19.函数极限求解
% (1)limit(f(x),a)   a是要趋向的值,无则默认趋向于0
syms x
limit((x - 3)/(x-1))
limit((x - 3)/(x-1),2)
% (2)左右极限
f = (x - 3)/abs(x-3);
fplot(f,[-1,5])  % fplot(f) 在默认区间 [-5 5](对于 x)绘制由函数 y = f(x) 定义的曲线。
%fplot(f,xinterval) 将在指定区间绘图。将区间指定为 [xmin xmax] 形式的二元素向量
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
%% 
% 20.微分
% (1)diff(f)命令    %f为要求导的函数
% ①申明求导变量:syms=x②定义要求导函数:f③调用diff(f)命令对函数进行求导
syms t
f = 3*t^2 + 2*t^(-2);
diff(f)
% (2)dif(f,n)计算高阶导数   %f为求导函数,n为求导的相应阶数。
syms t
f = 3*t^2 + 2*t^(-2);
diff(f,2)
% (3)10.6寻找曲线的最大值与最小值
% 若要寻找fx)=2x3+3x2-12x+17函数的最大值与最小值,我们可以
% ①用zplot(y,[])绘制出函数最大值与最小值,y是函数,[]是自变量取值区间。
% ②调用dify)命令求导。
% ③solve(g)命令求解导函数,即令导函数为0,即可解出对应的自变量x。
syms x
y = 2*x^3 + 3*x^2 - 12*x + 17;   %定义函数
ezplot(y, [-2, 2])      %与fplot同
g = diff(y);
s = solve(g)   %求解导函数为0的自变量值
subs(y, 1), subs(y,-2)  %求1和-2处的函数值
% (4)dsolve命令求解微分方程
% dsolve('eqn','cond1', 'cond2',…)  
dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2')  %eqn中导数用D表示

同时补充学习了如下文章:

MATLAB各种概率分布统计分析画图_线性分布图-CSDN博客

matlab(1):使用matlab处理excel数据进行画图_matlab怎么对excel 表格绘图-CSDN博客

以上代码可直接放于MATLAB中运行学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值