备战数学建模2——MATLAB导入数据,处理缺失值

一、导入数据1

第一步:导入文件
最常用的就是导入excel表格数据,项选项卡 ->导入数据->选择excel文件

第二步,导入的范围选择

●导入数据的范围默认是从第二行开始的,第一行一般是标题行。
■如果不想导入所有数据,可以按住ctrI键,选择想导入的内容,例如某行、某列。
■“变量名称行”也就是导入之后, matlab里表格最上方会显示变量,一般默认选择原文件第一行。 但是只能识别英文,如果是汉字则变成VerName".
按照如下图所示的选项,也可以得知和改变一些东西
在这里插入图片描述
第三步 导入类型选择
在这里插入图片描述
第四步 如果有不能导入的值,采用替换为NAN(不知道是什么东西)或者去掉的方法处理
在这里插入图片描述

注意,导入后数据在工作区.关闭matlab后数据消失。如果想保存数据的话,记得保存工作区文件!

二、导入数据2

把文件放在当前运行的文件目录下,用指令: 导入当前目录下的mat文件

 X = load('matlab.mat')

在这里插入图片描述
导入XECEL文件为矩阵的是另一个函数:

A =xlsread('G.xlsx')  %导入矩阵

三、处理缺失值和异常值

1.清理缺失数

实时编辑器,选择任务->清理缺失数据
首先,先写- -组包含缺失值和异常值的例子

x =1:100; %构造一个数组(矩阵),元素为123...100

%构造数据值
%矩阵元素的均值为0,方差o^2 = 1,且是正态分布的随机数
data = randn(1, 100);  % randn(1, 100)意味着生成一个1100列的矩阵

%设置第20406080个元素为缺失值
data(20:20:80) = NaN;


% data的值都是在0附近的,设置4个异常值
data(10) = -50;
data(40) = 45;
data(70) = -40;
data(90) = 50;
p1ot(x, data)

异常数据运行结果:
在这里插入图片描述
版本低了,没有实时编辑器 无法处理数据
在这里插入图片描述
在这里插入图片描述
然后就能处理了。

### 回答1: Matlab读取tif图片像素值保存于数组的方法如下: 首先,使用imread函数读取tif图片并保存为矩阵。例如: A = imread('image.tif'); 其中,A为读取后得到的矩阵。 然后,通过size函数获取矩阵的大小,进而获取图片的像素值。例如: [height, width] = size(A); for i = 1:height for j = 1:width pixelValue = A(i,j); % 此处可进行像素值处理 end end 其中,height和width分别表示矩阵的行数和列数,i和j分别表示行和列的索引。通过循环遍历矩阵中的每个像素,获取其像素值,然后可以对其进行处理,比如进行计算、修改等操作。 最后,通过数组保存处理后的像素值。例如: B = zeros(height, width); for i = 1:height for j = 1:width B(i,j) = A(i,j) + 100; % 对像素值加100 end end 此处,B为处理后的结果,同样是一个矩阵,也可以通过size函数获取其大小。而对于每个像素值的处理,可以根据具体需求进行修改。 通过这种方法,可以方便地读取tif图片的像素值,并进行处理、保存等操作。 ### 回答2: MATLAB可以读取tif格式的图片,也可以保存图片的像素值到数组中。读取图片的函数为imread,将图片的路径和文件名作为输入参数,函数将返回一个包含图片像素值的三维数组。其中,第一维表示图片的行,第二维表示列,第三维表示图片的通道数。如果图片是灰度图像,则通道数为1,如果是彩色图像,则通道数通常为3或4。 例如,读取名为test.tif的图片并保存其像素值到数组中可以使用以下代码: ``` img = imread('test.tif'); ``` 将数组中的像素值保存成新的图片可以使用imwrite函数。该函数需要将像素数组和保存路径作为参数传入,同时可以指定保存的图片格式和其他选项。 例如,将名为output.tif的数组保存为新的tif格式图片可以使用以下代码: ``` imwrite(output, 'output.tif', 'tif'); ``` 最后,需要注意的是,当读取tif格式的图片时,需要确保MATLAB支持该格式。如果出现格式不支持的问题,可以尝试更新MATLAB或下载安装适当的工具箱。 ### 回答3: MATLAB读取tif图片像素值并保存到数组中,可通过以下步骤实现: 首先使用imread函数读取tif图片,并将其存储为一个三维数组,如: ```matlab img = imread('image.tif'); ``` 然后可以使用size函数获取图像的大小信息,并创建一个与之对应的空数组,例如: ```matlab imgSize = size(img); data = zeros(imgSize(1), imgSize(2), imgSize(3)); ``` 接下来,使用for循环遍历整个图像,将每个像素的值保存到数组中,如: ```matlab for i=1:imgSize(1) for j=1:imgSize(2) for k=1:imgSize(3) data(i,j,k) = img(i,j,k); end end end ``` 最后,可以使用matlab自带的save函数将保存有图像像素值的数组data保存为mat文件,以备以后使用。例如,将数组保存为data.mat文件的语句为: ```matlab save('data.mat', 'data') ``` 经过以上步骤,就成功将tif图片的像素值保存到了数组中,并进行了保存以备以后使用的操作。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值