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