开始用matlab了,之前都是看书,按章节记笔记,逐渐发现这种方法还是有很多弊端,结构化的知识管理方式并不适合编程学习,用的时候还是记不住命令,再去翻看纸质笔记效率低,还是该带着问题边用边学,随时记录需要知识点、自己尝试的结果和感受,于是注册了csdn,作为自己学习的笔记吧。
先从简单的开始吧,每本书开始都要从matlab基础开始,我也写一点基础操作。
我是要做高光谱分析,从ENVI里把数据导出,是.txt格式,下面第一步就是要导入matlab.
导入数据主要两种方式:
1 通过向导界面 2 通过命令
1. 数据导入向导界面 鼠标点 File>>Import data ,一路next(当然中间都有一些选择)
这个方法挺不错的,自动、方便且可预览,所以推荐。适用于txt excel. 前提是txt里的数据格式要比较整齐,
我当时数据格式是
band1: *** *** ***
band2: *** *** ***
,,,
band840: *** *** ***
不是纯数据(有band字符),用命令会有问题,用向导一路next 导入即可,分隔符用space(空格),常规这样就可以了。
但是后来我遇到一个
问题,就是到了band100:***,可能与band99不对齐的缘故(多一位了),数据会变成0,当时很沮丧,以为这种
傻瓜式导入不能用了。后来通过尝试,将列之间的分割符改成other,数据就全导入了.
这种方法还是应该让txt里的数据整齐一点,下次在ENVI导出时要注意,尽量不出现band1这样的字符了。(如何做参见ENVI笔记吧)
2. 用命令
命令有好几个,load importdata dlmread等 常用的是load,
2.1 load导入可以有4种形式,适合于全是数字数据的文件,有其他字符(比如band)或是不太对齐都有可能报错
(1)load 1.txt
(2)load -acsii 1.txt
(3)a=load('1.txt')
(4)a=load('1.txt','-acsii')
(1)(2)是命令行方式,(3)(4)是函数方式,区别是命令行方式不能指定导入数据的变量名
问题:这里acsii是???什么情况用????
2.2 xlsread 适用于excel 暂时没怎么用过,略