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, :), '.-')  % 绘制带点的线图

结果:

目录
相关文章
|
3天前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
|
5月前
|
机器学习/深度学习 算法 数据挖掘
基于改进K-means的网络数据聚类算法matlab仿真
**摘要:** K-means聚类算法分析,利用MATLAB2022a进行实现。算法基于最小化误差平方和,优点在于简单快速,适合大数据集,但易受初始值影响。文中探讨了该依赖性并通过实验展示了随机初始值对结果的敏感性。针对传统算法的局限,提出改进版解决孤点影响和K值选择问题。代码中遍历不同K值,计算距离代价,寻找最优聚类数。最终应用改进后的K-means进行聚类分析。
|
6月前
|
机器学习/深度学习 算法 数据可视化
m基于PSO-LSTM粒子群优化长短记忆网络的电力负荷数据预测算法matlab仿真
在MATLAB 2022a中,应用PSO优化的LSTM模型提升了电力负荷预测效果。优化前预测波动大,优化后预测更稳定。PSO借鉴群体智能,寻找LSTM超参数(如学习率、隐藏层大小)的最优组合,以最小化误差。LSTM通过门控机制处理序列数据。代码显示了模型训练、预测及误差可视化过程。经过优化,模型性能得到改善。
116 6
|
6月前
|
机器学习/深度学习 算法
基于蛙跳优化的神经网络数据预测matlab仿真
使用MATLAB2022a,应用蛙跳优化算法(SFLA)调整神经网络权重,提升预测精度,输出预测曲线。神经网络结合输入、隐藏和输出层进行预测,蛙跳算法模仿蛙群觅食行为优化权重和阈值。算法流程包括蛙群初始化、子群划分、局部搜索及适应度更新,直至满足停止条件。优化后的神经网络能提升预测性能。
|
6月前
|
机器学习/深度学习 算法
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;优化器和超参数调整,最终评估并保存预测结果。
60 0
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
224 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
140 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
4月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
107 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
|
7月前
|
数据安全/隐私保护
耐震时程曲线,matlab代码,自定义反应谱与地震波,优化源代码,地震波耐震时程曲线
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
基于混合整数规划的微网储能电池容量规划(matlab代码)
基于混合整数规划的微网储能电池容量规划(matlab代码)

热门文章

最新文章

下一篇
DataWorks