matlab快速入门(读取数据并绘制散点图和拉格朗日插值

简介: matlab快速入门(读取数据并绘制散点图和拉格朗日插值


1.读取excel:

[num,txt,raw]=xlsread(<路径>, [<第几张表>, <范围>])

num返回的是excel中的数据矩阵,txt输出的是文本内容,raw输出的是未处理数据

后两项参数可以选择不放

例如:(我们一般只要num)

[num]=xlsread('D:\系统默认\桌面\数据可视化作业\1 课设\土地利用情况.xlsx', 2)

结果:

2.注释快捷键:

添加注释:选中要注释的语句,快捷键:ctrl+r

取消注释:选中要取消的语句,快捷键:ctrl+t

3.数组/矩阵索引:

Matlab 中的数组索引是从 1 开始的,因此使用索引 0 是无效的。

索引使用的和其他语言不一样,matlab使用的是中括号

以下是对矩阵行和列的索引

A(i,:) %提取矩阵A的第 i 行
A(:,i) %提取矩阵A的第 i 列

例如:

num(:, 1)

结果:

4.绘制散点图:

scatter(x, y) % x 和 y 必须是长度相等的向量
% 该类型的图形也称为气泡图

例如:

scatter(num(:, 1), num(:, 2))

结果:

5.拉格朗日插值:

5.1分割出非空和空的x和y两组数据:

这里用到了循环和条件语句

例如:

xnnull = [];
ynnull = [];
xnull = [];
for i = 1: size(num, 1)
    if isnan(num(i, 2))
        xnull = [xnull, num(i, 1)];
    else
        xnnull = [xnnull, num(i, 1)];
        ynnull = [ynnull, num(i, 2)];
    end
end
xnnull
ynnull
xnull

结果:

5.2插值:

新建一个名叫Lagrange.m的脚本即可,用于放函数定义:(这是别人写好的代码,借鉴的别的博主的)

function y0 = Lagrange(x,f,x0)
y0 = [];
%得出数据点的个数
n = length(x) ;
%得出插值点的个数
m = length(x0);
    for i = 1:m
    D = x0(i);
    y = 0.0;
    for k = 1:n
    %置l(x)的初值
    l = 1.0;
        for j = 1:n
            %迭代表示出l(xj)
            %记住,第k个是取不到的!!!!
            if j~=k
            l = l*(D-x(j))/(x(k)-x(j));
            end
        end
        %Pn(x)
        y = y + l*f(k);
    end
        xx = num2str(D,'%.4f');
        y0 = [y0, y];
        y =num2str(y,'%.4f');
        disp('f(x)的近似值点坐标为:');
        disp(['(',xx,',',y,')']);
    end
end

例如:

Lagrange(xnnull,ynnull,xnull);

结果:

5.3画图:

例如:(获取到返回值,得到的是插值的结果矩阵)

ynull = Lagrange(xnnull,ynnull,xnull);

结果:

然后把这两组xy拼起来画连线图

plot(x,y) % 放入xy即可

但是,我们这是还需要排序一下x和y,再画图:

例如:

% 先合并成两行
C = [[xnnull, xnull]; [ynnull, ynull]];
% 按第一行排序,这里要用到转置
C = sortrows(C.', 1).';
% 画图
plot(C(1, :), C(2, :), '.-')  % 绘制带点的线图

结果:

目录
相关文章
|
4月前
|
机器学习/深度学习 算法 数据挖掘
基于改进K-means的网络数据聚类算法matlab仿真
**摘要:** K-means聚类算法分析,利用MATLAB2022a进行实现。算法基于最小化误差平方和,优点在于简单快速,适合大数据集,但易受初始值影响。文中探讨了该依赖性并通过实验展示了随机初始值对结果的敏感性。针对传统算法的局限,提出改进版解决孤点影响和K值选择问题。代码中遍历不同K值,计算距离代价,寻找最优聚类数。最终应用改进后的K-means进行聚类分析。
|
5月前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
108 6
|
5月前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,带GUI界面,对比BP,RBF,LSTM
这是一个基于MATLAB2022A的金融数据预测仿真项目,采用GUI界面,比较了CNN、BP、RBF和LSTM四种模型。CNN和LSTM作为深度学习技术,擅长序列数据预测,其中LSTM能有效处理长序列。BP网络通过多层非线性变换处理非线性关系,而RBF网络利用径向基函数进行函数拟合和分类。项目展示了不同模型在金融预测领域的应用和优势。
|
5月前
|
机器学习/深度学习 算法
基于蛙跳优化的神经网络数据预测matlab仿真
使用MATLAB2022a,应用蛙跳优化算法(SFLA)调整神经网络权重,提升预测精度,输出预测曲线。神经网络结合输入、隐藏和输出层进行预测,蛙跳算法模仿蛙群觅食行为优化权重和阈值。算法流程包括蛙群初始化、子群划分、局部搜索及适应度更新,直至满足停止条件。优化后的神经网络能提升预测性能。
|
5月前
|
机器学习/深度学习 算法
m基于PSO-GRU粒子群优化长门控循环单元网络的电力负荷数据预测算法matlab仿真
摘要: 在MATLAB 2022a中,对比了电力负荷预测算法优化前后的效果。优化前为&quot;Ttttttt111222&quot;,优化后为&quot;Tttttttt333444&quot;,明显改进体现为&quot;Tttttttttt5555&quot;。该算法结合了粒子群优化(PSO)和长门控循环单元(GRU)网络,利用PSO优化GRU的超参数,提升预测准确性和稳定性。PSO模仿鸟群行为寻找最优解,而GRU通过更新门和重置门处理长期依赖问题。核心MATLAB程序展示了训练和预测过程,包括使用&#39;adam&#39;优化器和超参数调整,最终评估并保存预测结果。
56 0
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
198 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
128 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
90 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
6月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)