精华内容
下载资源
问答
  • 此下载内容应包括此代码,用于测试目的的随机生成的excel数据文件以及示例输出。 %该程序预计至少有三个 excel 列 1. 跟进时间和 2. 故障指示器(1=发生故障,0=未发生故障和 3.predictor(1=存在,0=不存在)。 ...
  • MNIST是在机器学习领域中的一个经典问题。该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.本资源提供了minist数据集及matlab读取代码
  • importSTDF.m 从 STDF 文件中的每个二进制记录中提取测试数据和信息字段,在单独的单元格中返回每个记录数据集。 根据规范,字段值将转换为其指定的数据类型。 由于文件类型是二进制文件,并且 MatLab 没有很好的...
  • 实验中,采用iris分类数据进行测试...最终得到的训练模型在测试数据上进行测试,测试的准确率为1。过程中的验证集准确率变化见图3。在迭代到达600次的时候基本已经稳定,说明该网络结构得到的准确率大致就在这个范围
  • 给定一个数组,如何让matlab生成一个这个数组中的一个随机数?x=[102030];x(randi(length(x)));其中randi(length(x))生成从1~(x的长度)这几个自然数中随即的一个数让这个数作为下标,就可以从x中随即选取一个数x...

    给定一个数组,如何让matlab生成一个这个数组中的一个随机数?

    x=[102030];x(randi(length(x)));其中randi(length(x))生成从1~(x的长度)这几个自然数中随即的一个数让这个数作为下标,就可以从x中随即选取一个数x(ran

    matlab 如何按一定概率取数组中的值

    思路是:你先产生100个随机数,然后看每一个随机数到底在哪个范围内(把0到1分为0到0.7、0.7到0.85、0.85到0.95、0.95到1四个区间,每个区间将对应一个数),然后给A赋值.程序为:A

    请教matlab高手,如何从一数组中提取满足条件的6个数?

    这是在你程序基础上改的functionz=ggz=[];fora=1:15forb=a:15forc=b:15ford=c:15fore=d:15forf=e:15ifa+b+c+d+e+f==20z

    matlab中如何剔除数组中的某些元素

    x=[1223433456];%未进行处理的点数据n=length(x);%点数x1=x(1:2);p=3;q=1;whilep

    matlab中如何提取图像中的一个五边形、或不规则图形区域

    egiongroup标记提取面积周长比即可再问:matlab中无regiongroup函数啊?此外,其实我真正想解决的问题是,在多幅图像中取同一块“五边形或不规则图形”,可我不会定义这个五边形区域内所

    请问如何批量提取matlab矩阵中的元素并作为另一个矩阵的坐标?

    建议楼上的回答之前自己试一试,以免误人误己. 如果要提取矩阵元素,我能想出来的有三种方法,但如果要改变这些位置元素的值,我能想出来的只有一种方法.示例(为了与其它元素区别,赋值用NaN):%

    matlab中如何把一个向量中的每个元素与元胞数组中的每个元素比较,返回元胞数组里元素在向量中的位置.

    建立一个文件shiyan1.m,然后用下面的代码测试,不知道你是不是这个意思:function shiyan1clc;global a;a = { &

    matlab求各个数组最大值中的最小值

    a是矩阵max(a)返回各列的最大值;min(max(a))返回这些最大值中的最小值.另外,max(a,2)返回各行的最大值.同理可以推出一系列相关的大小值.

    matlab中如何将不同的两个数组如何放到一个图中,两个数组中的数据个数不同,但想要这个图的横坐标一样

    x1=1:5;>>b=x1;>>plot(x1,b);>>x2=linspace(1,5,10);>>a=1:10;>>holdon>>plot(x2,a)

    matlab 如何提取系数

    collectCollectcoefficientsSyntaxR=collect(S)R=collect(S,v)DescriptionForeachpolynomialinthearraySofp

    如何利用Matlab产生矩阵(数组)

    产生矩阵的方法很多,有函数法,直接输入法,很多啊,你可以参考下基础的matlab的教程啊!但是矩阵的格式是固定的,一点要放在[]里面,并且行与行之间要空格,行与列之间用分号表示,这些你都可以在matl

    如何将matlab数组循环赋值给另外一组数组

    %很明显i=1:6,因此循环后d只有六个元素,而r=normrnd(m(i),n(i),1,200)为200个元素,当然不可以了,你的意思是把每次产生的r赋给d中的元素是不.可以这样functionf

    MATLAB 如何判断某变量等于某数组中的一个元素

    a=[12344;546;897;564542];[x,y]=find(a==56)x=4y=1a=[1234454689756454];find(a==56)ans=10

    matlab三维数组如何转成二维数组?

    A=rand(81,81,81);n=20;A1=A(:,:,n);%81*81二维A2=A(:,n,:);%81*1*81三维A3=A(n,:,:);%1*81*81三维%将三维转为81*81二维A

    matlab中如何实现.数组给数组赋值

    很高兴为你解答,就说说你上面这个例子吧.B=[12345]A[k+1]=B[k]从上面的例子知道,B有5个元素,A有6个元素,首先可以对A进行初始化,然后按照你给出的规则,为A中的元素赋值.具体示例如

    用matlab 提取字符串中的数字.

    S=REGEXP(STRING,EXPRESSION)其中EXPRESSION的取法为:.Anycharacter[]Anycharactercontainedwithinthebrackets[^]

    MATLAB如何将一维数组转化为三维数组

    6*30*15=2700,与原始数据量不同.所以...用reshape一下子就转换了,不用编程.

    matlab如何实现数组中的每一个元素都减去1

    A中的第一个(第二个……第i个)元素去减B中的元素,这里的B中的元素是什么元素?与A(i,j)位置相同的元素?第二个问题:index=find(A<0)A(index)=A(index)+1.5

    如何将.txt文件中的数据导入Matlab,存入数组中,数组为A[22,3]

    clcclearallrow=22;Num=zeros(22,3);fid=fopen('1.txt');fori=1:1:rowNum(i,1)=fscanf(fid,'%d',[1,1]);Num

    Matlab数组中的实数找出来

    你得到的根应该是存储在矩阵V中吧,可以从该矩阵中把实数选出来.fork=1:length(V)idx(k)=isreal(V(k,1));endz=V(idx)主意isreal函数兵不是对矩阵中的某一

    展开全文
  • matlab默认数据类型

    千次阅读 2021-04-30 04:29:28
    大部分整数类型占用比浮点类型更少的内存空间 单精度浮点类型 和双精度浮点类型相比,占用内存空间更小,精度和 数值范围都比双精度浮点类型小 双精度浮点类型 Matlab中默认的数值类型 逻辑类型数据 1代表逻辑真,0代表...

    和无符号的整数类型 大部分整数类型占用比浮点类型更少的内存空间 单精度浮点类型 和双精度浮点类型相比,占用内存空间更小,精度和 数值范围都比双精度浮点类型小 双精度浮点类型 Matlab中默认的数值类型 逻辑类型数据 1代表逻辑真,0代表......

    MATLAB 中读入图像的数据类型是 uint8,而在矩阵中使用的数据类型是 double 因此 I2=im2double(I1) :把图像数组 I1 转换成 double 精度类型; 如果不转换,在对 uint8 进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab......

    Matlab数据类型及转换 (2011-05-16 15:10:59)转载▼标签: 杂谈 分类: 备忘录 Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。 1、整型:(int8;uint8;int16;uint16;......

    MATLAB变量与数据类型(精)_数学_自然科学_专业资料。MATLAB 通信技术专业教学资源库 深圳职业技术学院 《通信系统SIMULINK仿真平台》课程 MATLAB变量与 数据类型主讲: 杨巧莲课程团队:杨巧莲、吴丽春、张倩、董月秋、杨柳 MATLAB变量变量的......

    Matlab数据类型 ? 变量与常量 ? 变量 ? 变量是任何程序设计语言的基本元素之一。 ? Matlab并不要求对所使用的变量进行事先声明, 也不需要指定变量类型,Matlab会自动根据所赋予变 量的值或对变量所进行的操作来确定变量的类型。 ? ...

    命令方法针对数据的显示形式控制,matlab 中有专用命令 format 但该命令不影响数据的储存形式和计算精度 format 默认格式 format short 5 字长定点数 format long 15 字长定点数 format short e 5 字长浮点数 format long e 15 字长......

    数学软件MATLAB 数据类型 数据类型 常数和变量 数组和矩阵 字符串和多维数组 结构和单元数组 变量 变量与常量 变量是任何程序设计语言的基本元素之一。 Matlab 并不要求对所使用的变量进行事先声明, 也不需要指定变量类型,Matlab 会自动......

    Matlab操作语法_计算机软件及应用_IT/计算机_专业资料。Matlab操作语法 Matlab 图像 1. Matlab 基础 1.1 数据格式 Matlab 默认的数据格式为双精度浮点数的矩阵或数组,同时支持其它数据类型。Matlab 将单变 量看作 1?1 的数组。Matlab......

    2014年4月29日构建全球华人科学博客圈 返回首页 科学网—[转载]转 matlab的各种数据读取(txt,dat,mat等格式) ,文件打开关闭 - 魏萌的博文微博 RSS订阅 帮助 注册 | 登录 mynightwish的个人博客 分享 /u......

    MATLAB支持多种数据类型,包括数值类型、字符和字符串、逻辑类型、元胞、构 架和函数句柄等,用户还可以通过MATLAB“类”(class)建立自定义数据类型, 所有类型的数据都被存储在矩阵或数组中进行操作,矩阵和数组可以从最小的的 空矩阵到......

    可以用来创建用户自定义的数据类型 基本数值类型(续) ? MATLAB系统默认的运算都是针对双精度类型的数据或变量 稀疏矩阵的元素仅能使用双精度类型的变量 spares类型的数据变量和整数类型数据、单精度 数据类型变量之间的转换是非法的 在进行......

    2.1变量与常量 数学实验 ? 变量 ? 变量是任何程序设计语言的基本元素之一。 ? Matlab 并不要求对所使用的变量进行事先声明, 也不需要指定变量类型,Matlab 会自动根据所赋予 变量的值或对变量所进行的操作来确定变量的类型。 ? 在......

    测试数据类型函数: y= class() 80 >> class(y) ans = MATLAB默认的 double 数据类型 >> 2016/3/8 19 整数的运算 >> y=uint8(15) y= 15 >> x=uint8(30) x= 当运算结果溢 出时,系统将 30 结果设置为该 >> x+......

    数值型数据包括整数(带符号和无符号)和浮点数 (单精度和双精度)。 ? 在缺省(默认)状态下,Matlab将所有的数都看作 是双精度的浮点数。 ? 使用整型变量和单精度变量可以节约内存空间。 2.2 MATLAB的基本数据类型 ? 整数 ? Matlab......

    图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 ......

    2009/04/02 22:33 [useful ] 如何控制 matlab 中的数据输出格式? 针对数据的显示形式控制,matlab 中有专用命令 format 但该命令不影响数据的储存形式和计算精度 format 默认格式 format short 5 字长定点数 format long 15 字长定点......

    MATLAB基本使用方法(标点、数据类型、快捷键等) 隐藏>> MATLAB 基本使用方法 MATLAB 基本操作 1、MATLAB 的 Command Window 中运行的所有命令都共享一个相同的工作空间 2、cd 命令用于确定当前 workspace 3、help+确切函数名 4、lookfor......

    改变 2.2.3 矩阵下标引用 2.2.4 矩阵信息的获取 2.2.5 矩阵结构的改变 2.2.6 稀疏矩阵 在MATLAB中,所有的数据均以二维、三维 或高维矩阵的形式存储,每个矩阵的单元可以是数值类型、逻辑类型、字符类型或者其他任何数 据类型。...

    2020/10/2 变量与常量 变量 变量是任何程序设计语言的基本元素之一。 Matlab 并不要求对所使用的变量进行事先声明, 也不需要指定变量类型,Matlab 会自动根据所赋予 变量的值或对变量所进行的操作来确定变量的类型。 在赋值过程中,......

    2009/04/02 22:33 [useful ] 如何控制 matlab 中的数据输出格式? 针对数据的显示形式控制,matlab 中有专用命令 format 但该命令不影响数据的储存形式和计算精度 format 默认格式 format short 5 字长定点数 format long 15 字长定点......

    展开全文
  • 在编写一个程序,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍 MATLAB中文件的读写和数据的导入导出。13.1 数据基本操作本节介绍基本的数据操作,...

    在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍 MATLAB中文件的读写和数据的导入导出。

    13.1 数据基本操作

    本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。

    13.1.1 文件的存储

    MATLAB支持工作区的保存。用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。保存工作区可以通过菜单进行,也可以通过命令窗口进行。

    1. 保存整个工作区

    选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。

    2. 保存工作区中的变量

    在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。

    3. 利用save命令保存

    该命令可以保存工作区,或工作区中任何指定文件。该命令的调用格式如下:

    ● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。

    ● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。

    ● save('filename', 'var1', 'var2', ...):保存指定的变量在 filename 指定的文件中。

    ● save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。

    ● save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。

    ● save('-regexp', expr1, expr2, ...):通过正则表达式指定待保存的变量需满足的条件。

    ● save('..., 'format'),指定保存文件的格式,格式可以为MAT文件、ASCII文件等。

    13.1.2 数据导入

    MATLAB中导入数据通常由函数load实现,该函数的用法如下:

    ● load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。

    ● load filename:将filename中的全部变量导入到工作区中。

    ● load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。

    ● load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。

    ● load -ascii filename:无论输入文件名是否包含有扩展名,将其以ASCII格式导入;如果指定的文件不是数字文本,则返回error。

    ● load -mat filename:无论输入文件名是否包含有扩展名,将其以mat格式导入;如果指定的文件不是MAT文件,则返回error。

    例13-1 将文件matlab.map中的变量导入到工作区中。

    首先应用命令whos –file查看该文件中的内容:

    >> whos -file matlab.mat

    Name                  Size              Bytes Class

    A                    2x3              48 double array

    I_q                 415x552x3            687240 uint8 array

    ans                1x3               24 double array

    num_of_cluster       1x1               8 double array

    Grand total is 687250 elements using 687320 bytes

    将该文件中的变量导入到工作区中:

    >> load matlab.mat

    该命令执行后,可以在工作区浏览器中看见这些变量,如图13-1所示。

    图13-1 导入变量后的工作区视图

    接下来用户可以访问这些变量。

    >> num_of_cluster

    num_of_cluster =

    3

    MATLAB中,另一个导入数据的常用函数为importdata,该函数的用法如下:

    ● importdata('filename'),将filename中的数据导入到工作区中;

    ● A = importdata('filename'),将filename中的数据导入到工作区中,并保存为变量A;

    ● importdata('filename','delimiter'),将filename中的数据导入到工作区中,以delimiter指定的符号作为分隔符;

    例13-2 从文件中导入数据。

    >> imported_data = importdata('matlab.mat')

    imported_data =

    ans: [1.1813 1.0928 1.6534]

    A: [2x3 double]

    I_q: [415x552x3 uint8]

    num_of_cluster: 3

    与load函数不同,importdata将文件中的数据以结构体的方式导入到工作区中。

    13.1.3 文件的打开

    MATLAB中可以使用open命令打开各种格式的文件,MATLAB自动根据文件的扩展名选择相应的编辑器。

    需要注意的是open('filename.mat')和load('filename.mat')的不同,前者将filename.mat以结构体的方式打开在工作区中,后者将文件中的变量导入到工作区中,如果需要访问其中的内容,需要以不同的格式进行。

    例13-3 open与load的比较。

    >> clear

    >> A = magic(3);

    >> B = rand(3);

    >> save

    Saving to: matlab.mat

    >> clear

    >> load('matlab.mat')

    >> A

    A =

    8     1     6

    3     5     7

    4     9     2

    >> B

    B =

    0.9501    0.4860    0.4565

    0.2311    0.8913    0.0185

    0.6068    0.7621    0.8214

    >> clear

    >> open('matlab.mat')

    ans =

    A: [3x3 double]

    B: [3x3 double]

    >> struc1=ans;

    >> struc1.A

    ans =

    8     1     6

    3     5     7

    4     9     2

    >> struc1.B

    ans =

    0.9501    0.4860    0.4565

    0.2311    0.8913    0.0185

    0.6068    0.7621    0.8214

    13.2 文本文件的读写

    在上一节中介绍的函数和命令主要用于读写mat文件,而在应用中,需要读写更多格式的文件,如文本文件、word文件、xml文件、xls文件、图像文件和音视频文件等。本节介绍文本文件(txt)的读写。其他文件的读写,用户可以参考MATLAB帮助文档。

    MATLAB中实现文本文件读写的函数如表13-1所示。

    表13-1 MATLAB中文本文件读写函数

    函    数

    功    能

    csvread

    读入以逗号分隔的数据

    csvwrite

    将数据写入文件,数据间以逗号分隔

    dlmread

    将以 ASCII 码分隔的数值数据读入到矩阵中

    dlmwrite

    将矩阵数据写入到文件中,以 ASCII 分隔

    textread

    从文本文件中读入数据,将结果分别保存

    textscan

    从文本文件中读入数据,将结果保存为单元数组

    下面详细介绍这些函数。

    1. csvread、csvwrite

    csvread函数的调用格式如下:

    ● M = csvread('filename'),将文件filename中的数据读入,并且保存为M,filename中只能包含数字,并且数字之间以逗号分隔。M是一个数组,行数与filename的行数相同,列数为filename列的最大值,对于元素不足的行,以0补充。

    ● M = csvread('filename', row, col),读取文件filename中的数据,起始行为row,起始列为col,需要注意的是,此时的行列从0开始。

    ● M = csvread('filename', row, col, range),读取文件filename 中的数据,起始行为 row,起始列为col,读取的数据由数组 range 指定,range 的格式为:[R1 C1 R2 C2],其中R1、C1为读取区域左上角的行和列,R2、C2为读取区域右下角的行和列。

    csvwrite 函数的调用格式如下:

    ● csvwrite('filename',M),将数组M中的数据保存为文件filename,数据间以逗号分隔。

    ● csvwrite('filename',M,row,col),将数组M中的指定数据保存在文件中,数据由参数 row和col指定,保存row和col右下角的数据。

    ● csvwrite写入数据时每一行以换行符结束。另外,该函数不返回任何值。

    这两个函数的应用见下面的例子。

    例13-4 函数csvread和csvwrite 的应用。

    本例首先将MATLAB的图标转化为灰度图,将数据存储在文本文件中,再将其部分读出,显示为图形。

    编写M文件,命名为immatlab.m,内容为:

    % the example of functions csvread and csvwrite

    I_MATLAB= imread('D:\matlab.bmp');     % read in the image

    I_MATLAB= rgb2gray(I_matlab);          % convert the image to gray image

    figure,imshow(I_matlab,'InitialMagnification',100); % show the image

    csvwrite('D:\matlab.txt',I_matlab);     % write the data into a text file

    sub_MATLAB= csvread('D:\matlab.txt',100,100);% read in part of the data

    sub_MATLAB= uint8(sub_matlab);         % convert the data to uint8

    figure,imshow(sub_matlab,'InitialMagnification',100);      % show the new image

    在命令窗口中运行该脚本,输出图形如图13-2所示。

    (a)                                            (b)

    图13-2 例13-3 的运行结果

    该例中涉及到了少量的图像处理内容,超出本书的范围,感兴趣的读者可以查阅 MATLAB帮助文档中关于Image Processing Toolbox的介绍。

    2. dlmread、dlmwrite(个人觉得这个比较好用)

    dlmread函数用于从文档中读入数据,其功能强于csvread。dlmread的调用格式如下:

    ● M = dlmread('filename')

    ● M = dlmread('filename', delimiter)

    ● M = dlmread('filename', delimiter, R, C)

    ● M = dlmread('filename', delimiter, range)

    其中参数delimiter用于指定文件中的分隔符,其他参数的意义与csvread函数中参数的意义相同,这里不再赘述。dlmread函数与csvread函数的差别在于,dlmread函数在读入数据时可以指定分隔符,不指定时默认分隔符为逗号。

    dlmwrite函数用于向文档中写入数据,其功能强于csvwrite函数。dlmwrite函数的调用格式为:

    ● dlmwrite('filename', M),将矩阵M的数据写入文件filename中,以逗号分隔。

    ● dlmwrite('filename', M, 'D'),将矩阵M的数据写入文件filename中,采用指定的分隔符分隔数据,如果需要tab键,可以用“\t”指定。

    ● dlmwrite('filename', M, 'D', R, C),指定写入数据的起始位置。

    ● dlmwrite('filename', M, attribute1, value1, attribute2, value2, ...),指定任意数目的参数,可以指定的参数见下表。

    ● dlmwrite('filename', M, '-append'),如果filename指定的文件存在,在文件后面写入数据,不指定时则覆盖原文件。

    ● dlmwrite('filename', M, '-append', attribute-value list),叙写文件,并指定参数。

    ● dlmwrite 函数的可用参数如表13-2所示。

    表13-2 dlmwrite函数的可用参数

    参 数 名

    功    能

    delimiter

    用于指定分隔符

    newline

    用于指定换行符,可以选择“pc”或者“unix”

    roffset

    行偏差,指定文件第一行的位置,roffset 的基数为 0

    coffset

    列偏差,指定文件第一列的位置,coffset 的基数为 0

    precision

    指定精确度,可以指定精确维数,或者采用 c 语言的格式,如“%10.5f”

    3. textread,textscan

    当文件的格式已知时,可以利用textread函数和textscan函数读入。这里只介绍这两个函数应用的实例。

    例13-5 通过%读入文件,按照原有格式读取。

    文件的内容为:

    Sally    Level1 12.34 45 Yes

    在命令窗口中输入:

    >> [names, types, x, y, answer] = textread('D:\mat.txt','%s %s %f %d %s', 1)

    得到结果为:

    names =

    'Sally'

    types =

    'Level1'

    x =

    12.3400

    y =

    45

    answer =

    'Yes'

    例13-6 函数csvread和csvwrite的应用

    Sally Level1 12.34 45 1.23e10 inf NaN Yes

    Joe Level2 23.54 60 9e19 -inf 0.001 No

    Bill Level3 34.90 12 2e5 10 100 No

    >> fid = fopen('D:\mat.txt');

    >> C = textscan(fid, '%s %s %f32 %d8 %u %f %f %s');

    >> fclose(fid);

    13.3 低级文件I/O

    本节介绍一些基本的文件操作,这些操作如表13-3所示。

    表13-3 MATLAB的基本文件操作

    函    数

    功    能

    fclose

    关闭打开的文件

    feof

    判断是否为文件结尾

    ferror

    文件输入输出中的错误查找

    fgetl

    读入一行,忽略换行符

    fgets

    读入一行,直到换行符

    fopen

    打开文件,或者获取打开文件的信息

    fprintf

    格式化输入数据到文件

    fread

    从文件中读取二进制数据

    frewind

    将文件的位置指针移至文件开头位置

    fscanf

    格式化读入

    fseek

    设置文件位置指针

    ftell

    文件位置指针

    fwrite

    向文件中写入数据

    下面重点介绍函数fprintf。该函数的调用格式如下:

    count = fprintf(fid, format, A, ...),该语句将矩阵A及后面其他参数中数字的实部以 format 指定的格式写入到fid指定的文件中,返回写入数据的字节数。

    上面语句中,参数format由%开头,共可由4个部分组成,分别如下:

    ● 标记(flag),为可选部分。

    ● 宽度和精度指示,为可选部分。

    ● 类型标志符,为可选部分。

    ● 转换字符,为必需部分。

    1. 标记

    标记用于控制输出的对齐方式,可以选择的内容如表13-4所示。

    表13-4 标记的可选内容

    函    数

    功    能

    示    例

    负号(-)

    在参数左侧进行判别

    %-5.2d

    加号(+)

    在数字前添加符号

    %+5.2d

    空格

    在数字前插入空格

    % 5.2d

    0

    在数字前插入0

    %05.2d

    2. 宽度和精度指示

    用户可以通过数字指定输出数字的宽度及精度,格式如下:

    ● %6f,指定数字的宽度;

    ● %6.2f,指定数字的宽度及精度;

    ● %.2f,指定数字的精度。

    例13-6 fprintf函数宽度和精度指示符示例。

    在命令窗口中输入如下命令:

    >> file_type = fopen('D:\type.txt','w');

    >> fprintf(file_h, '%6.2f %12.8f\n', 1.2, -43.3);

    >> fprintf(file_h, '%6f %12f\n', 1.2, -43.3);

    >> fprintf(file_h, '%.2f %.8f\n', 1.2, -43.3);

    >> fclose(file_h)

    ans =

    0

    打开该文件,其内容为:

    1.20 -43.30000000

    1.200000   -43.300000

    1.20 -43.30000000

    从上述结果可以看出宽度和精度控制的效果。

    3. 转换字符

    转换字符用于指定输出的符号,可以选择的内容如表13-5所示。

    表13-5 格式化输出的标志符及意义

    标 志 符

    意    义

    %c

    输出单个字符

    %d

    输出有符号十进制数

    %e

    采用指数格式输出,采用小写字母 e,如:3.1415e+00

    (续表)

    标 志 符

    意    义

    %E

    采用指数格式输出,采用大写字母 E,如:3.1415E+00

    %f

    以定点数的格式输出

    %g

    %e及%f的更紧凑的格式,不显示数字中无效的 0

    %G

    与%g相同,但是使用大写字母E

    %i

    有符号十进制数

    %o

    无符号八进制数

    %s

    输出字符串

    %u

    无符号十进制数

    %x

    十六进制数(使用小写字母a-f)

    %X

    十六进制数(使用大写字母A-F)

    其中 %o、%u、%x、%X支持使用子类型,具体情况这里不再赘述。格式化输出标志符的效果见下面的例子。

    例13-7 fprintf 格式化输出示例。

    >> x = 0:.1:1;

    >> y = [x; exp(x)];

    >> fid = fopen('exp.txt', 'wt');

    >> fprintf(fid, '%6.2f %12.8f\n', y);

    >> fclose(fid)

    ans =

    0

    显示该文件:

    >> type exp.txt

    0.00   1.00000000

    0.10   1.10517092

    0.90   2.45960311

    1.00   2.71828183

    例13-9 利用 fprintf 函数在显示器上输出字符串

    >> fprintf(1,'It''s Friday.\n')

    It's Friday.

    在该例中,利用1表示显示器,并且用两个单引号显示单引号,使用\n进行换行。在格式化输出中,这类符号称为转义符。MATLAB中的常用转义符如表13-6所示。表13-6 MATLAB中的常用转义符

    转 义 符

    功    能

    \b

    退格

    \f

    表格填充

    \n

    换行符

    \r

    回车

    \t

    tab

    \\

    \,反斜线

    \'' 或 ''

    ',单引号

    %%

    %,百分号

    13.4 利用界面工具导入数据

    除前面几节介绍的函数外,也可以通过界面工具将数据导入到工作区中。本节介绍利用工作区浏览器中的工具导入数据。

    选择工作区浏览器工具栏中的“Import Data”,选择待导入的文件,这里我们选择了一个文本文件,其内容为逗号分隔的数字,打开窗口如图13-3所示

    展开全文
  • 最近做图像分类,数据集的整理真的好费时间,找到一个代码,非常好使,推荐给大家。实现的功能是,将一个文件夹下的每个子文件夹的...想了很多方法,但最后发现其实自己整理的数据,最合理的分配训练集和测试集的方...

    最近做图像分类,数据集的整理真的好费时间,找到一个代码,非常好使,推荐给大家。

    实现的功能是,将一个文件夹下的每个子文件夹的一半数据分割出来并保存,生成相应的train.txt,test.txt。

    自己弄数据集,真是非一般的体验呀。虽然说这样算是正在意义上经历一个完整的项目,被迫学习了很多数据处理的问题。但是搞数据真是太蛋疼了。

    想了很多方法,但最后发现其实自己整理的数据,最合理的分配训练集和测试集的方法。就是先把数据全部整到一起,然后按一定比例从中随机选出训练集和测试集(这两个肯定是不能重复的),比如这里的25%作为测试集,75%作为训练集。

    编写这个程序一开始,主要是有些函数不知道怎么用。编这程序是发现了即使是matlab编写程序都要用disp输出一些信息,这样更方便查看程序运行进度。其余就是新学习了一些函数,再把之前编写的程序合起来。

    clear;close all;clc;

    %%

    %程序实现的功能

    %1、把指定路径的数据(已按类别放置在不同的文件夹中),随机的把其中的75%的划分为训练集,25%划分为测试集

    %2、训练集按类别放在指定路径的train文件夹中,测试集按类别放在指定路径的val文件夹中

    %3、在train和val文件夹的同级文件夹按照caffe需求生成对应的train.txt和val.txt的label

    %%

    %程序中用到的之前不清楚的函数如下

    %1)disp:用来在界面上显示一些必要的信息,方便查看程序进度。disp(' ')可以起到在界面上换行显示的作用

    %2)str2double:带起之前一直使用的str2num,matlab的提示是这样函数效率更高。而且这两个函数输出的数据类型都是double类型。

    %3)randperm(n):生成一个1到n直接的随机数列

    %4)copyfile(a,b):把文件a复制到路径b,路径b带有最后的\符号

    %

    %

    %

    %%

    disp('程序开始执行');

    %%%%%%需要更改的参数(即两个路径)%%%%%%%%%%%%%%%%%%%%%%%%%%

    pathSource='G:\遥感数据库\1\AID';%AID文件夹下有30个文件夹

    pathDestination='G:\遥感数据库\deal';%保存分割后数据集以及train.txt和test.txt

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    %在目标路径创建train、val文件夹

    pathCreDirTrain=[pathDestination,'\','train','\'];

    mkdir(pathCreDirTrain);

    pathCreDirVal=[pathDestination,'\','val','\'];

    mkdir(pathCreDirVal);

    %读取文件夹列表,这种方式读取会保留原文件.(在结构体中第一个)和上一层目录..(在结构体第二个)

    dirSourceList=dir(pathSource);

    countSourceList=length(dirSourceList);%文件夹个数

    %拷贝数据到目标路径

    for numDirList=3:countSourceList

    %if(length(dirSourceList(numDirList).name)>=2)%根据这个过滤掉在此文件夹可能的train.txt、val.txt、count.txt文件

    %continue;

    %end

    fileName=dir([pathSource,'\',dirSourceList(numDirList).name]);%读取子文件夹中的图片

    %统计子文件夹中的文件个数

    fileSum=length(fileName);

    fileNum=fileSum-2;%为了生成对应于读取的从3开始的文件,只能先减去2,然后生成随机数后加上2

    disp(' ');%加入一个空格,作为在界面显示中一个类似于换行的工具

    %在程序中增加一些输出信息,方便查看数据内容

    disp(['原始数据子文件夹',num2str(dirSourceList(numDirList).name),'中有图片:',num2str(fileNum)]);

    %由于matlab读取文件的规则,在文件列表中肯定最前面会有.和..这两个文件

    %所以想到先生成fileSum-2范围内的随机数,然后再各项加2,就为真正要找的随机数

    numFileList=randperm(fileNum);

    numFileList=numFileList+2;

    partitionPosition=round(fileNum/2);%这是通过四舍五入确定的分割位置。这是划分数据的比例,2是按一半划分,如果是4的话,'先拷贝val(前25%)后拷贝train(后75%)'

    %在程序中增加一些输出信息,方便查看数据内容

    % disp(['先拷贝val(前25%)后拷贝train(后75%)']);

    %%

    %拷贝测试集数据val

    %在程序中增加一些输出信息,方便查看程序执行进度

    disp(['在val文件夹下创建子文件夹',num2str(dirSourceList(numDirList).name)]);

    disp(['拷贝',num2str(partitionPosition),'张图片到val文件夹下子文件夹',num2str(dirSourceList(numDirList).name),'中']);

    %不知道这种拷贝东西到别的地方,是先拷贝数据量比较多的部分,还是数据量比较少的部分,这有什么讲究。

    %在目标val文件夹中,创建对应的子文件夹

    pathCreValDir=[pathCreDirVal,dirSourceList(numDirList).name,'\'];

    mkdir(pathCreValDir);

    %在程序中增加一些输出信息,方便查看程序执行进度

    disp(['复制测试数据到val子文件夹',num2str(dirSourceList(numDirList).name),'中']);

    %复制图片到指定路径

    for picNum=1:partitionPosition%由于是要读取numFileList中生成的随机数据,所以从1开始

    copyfile([pathSource,'\',dirSourceList(numDirList).name,'\',fileName(numFileList(picNum)).name], ...

    pathCreValDir);

    end

    %%

    %拷贝训练集数据train

    %在程序中增加一些输出信息,方便查看程序执行进度

    disp(['在train文件夹下创建子文件夹',num2str(dirSourceList(numDirList).name)]);

    disp(['拷贝',num2str(fileNum-partitionPosition),'张图片到train文件夹下子文件夹',num2str(dirSourceList(numDirList).name),'中']);

    %在目标train文件夹中,创建对应的子文件夹

    pathCreTrainDir=[pathCreDirTrain,dirSourceList(numDirList).name,'\'];

    mkdir(pathCreTrainDir);

    %在程序中增加一些输出信息,方便查看程序执行进度

    disp(['复制训练数据到Train子文件夹',num2str(dirSourceList(numDirList).name),'中']);

    %复制图片到指定路径

    for picNum=partitionPosition+1:fileNum%由于是要读取numFileList中生成的随机数据,所以从1开始

    copyfile([pathSource,'\',dirSourceList(numDirList).name,'\',fileName(numFileList(picNum)).name], ...

    pathCreTrainDir);

    end

    end

    disp('数据拷贝完毕');

    %%

    %生成label

    disp('开始生成label');

    %考虑到最好写个程序,能够一步完整所有操作。所以在这程序下面加上生成label的功能

    %在上面的程序中,已经有变量pathCreDirTrain(目标Train的路径)、pathCreDirVal(目标Val的路径)

    %先生成train文件夹中的label

    disp('开始生成trainlabel');

    dirTrainList=dir(pathCreDirTrain);%读取文件夹列表,这种方式读取会保留原文件.(在结构体中第一个)和上一层目录..(在结构体第二个)

    countTrainList=length(dirTrainList);%文件夹个数

    fid = fopen([pathDestination,'\','train.txt'], 'w');%打开train文件夹时,对应的文本文件

    for numList=3:countTrainList%文件夹从3开始

    if(length(dirTrainList(numList).name)>=2)%根据这个过滤掉在此文件夹可能的train.txt文件

    continue;

    end

    fileName=dir([pathCreDirTrain,'\',dirTrainList(numList).name]);%读取子文件夹

    fileSum=length(fileName);%统计子文件夹中的文件个数

    for fileNum=3:fileSum%文件从3开始

    fprintf(fid,'%s', [dirTrainList(numList).name,'/',fileName(fileNum).name]);%输入:子文件/图片名称

    fprintf(fid,'%s', ' ');%空格间隔符

    fprintf(fid,'%d', str2double(dirTrainList(numList).name));%加入label,即文件夹名称

    fprintf(fid,'\n');%换行

    end

    end

    fclose(fid);%关闭文本文件

    fclose('all');%关闭所有连接,防止没关掉的情况

    disp('trainlabel生成完毕');

    %在上面的程序中,已经有变量pathCreDirTrain(目标Train的路径)、pathCreDirVal(目标Val的路径)

    %先生成train文件夹中的label

    disp('开始生成vallabel');

    dirValList=dir(pathCreDirVal);%读取文件夹列表,这种方式读取会保留原文件.(在结构体中第一个)和上一层目录..(在结构体第二个)

    countValList=length(dirValList);%文件夹个数

    fid = fopen([pathDestination,'\','val.txt'], 'w');%打开train文件夹时,对应的文本文件

    for numList=3:countValList%文件夹从3开始

    if(length(dirValList(numList).name)>=2)%根据这个过滤掉在此文件夹可能的train.txt文件

    continue;

    end

    fileName=dir([pathCreDirVal,'\',dirValList(numList).name]);%读取子文件夹

    fileSum=length(fileName);%统计子文件夹中的文件个数

    for fileNum=3:fileSum%文件从3开始

    fprintf(fid,'%s', [dirValList(numList).name,'/',fileName(fileNum).name]);%输入:子文件/图片名称

    fprintf(fid,'%s', ' ');%空格间隔符

    fprintf(fid,'%d', str2double(dirValList(numList).name));%加入label,即文件夹名称

    fprintf(fid,'\n');%换行

    end

    end

    fclose(fid);%关闭文本文件

    fclose('all');%关闭所有连接,防止没关掉的情况

    disp('vallabel生成完毕');

    展开全文
  • matlab设置数据精度

    2021-05-06 01:10:04
    七、心得体会 MATLAB 功能强大,从数学计算到数据处理,从信号处理到控制理论,MATLAB 正在逐渐 深入到我们生活和学习中的方方面面,即使仅在数据处理一方面,其强大的......用 matlab 自带的平滑函数作平滑滤波实例。...
  • Signal Notes 是一个用户友好的应用程序,用于使用 National... Signal Notes Instant Edition 允许配置(采样频率和电压范围)和监控多达 8 个差分数据通道,并可选择将数据记录(作为时间戳和电压电平)到 MAT 文件。
  • matlab数据的导入和导出

    千次阅读 2019-08-23 10:20:38
    数据的导入和导出从文本文件中导入数据part1, 使用importdata函数读取格式较为简单的文本文件part2, 使用fopen 函数读取格式较为复杂的文本文件part3, 使用fopen 函数+ 正则表达式 regexp 读取...%生成测试数据 t...
  • 使用Matlab数据归一化

    万次阅读 多人点赞 2019-10-20 19:06:16
    在使用机器学习做分类和回归分析,往往需要对训练和测试数据首先做归一化处理。这里就对使用MATLAB对数据进行归一化方法做一个小总结。 为什么进行归一化 一般做机器学习应用的时候大部分时间是花费在特征处理上,...
  • 对一组一维数据(实验结果)的稳定程度进行评价,以图示方式显示其分布情况。
  • importSTDF.m 从 STDF 文件中的每个二进制记录中提取测试数据和信息字段,在单独的单元格中返回每个记录数据集。 根据规范,字段值将转换为其指定的数据类型。 由于文件类型是二进制文件,并且 MatLab 没有很好的...
  • Matlab随机划分训练集和测试

    千次阅读 2020-12-30 09:15:22
    %导入数据集clear;clc;load wine_SVM; %数据集为wine,数据集标签为wine_labelsData = wine; %对数据集实例化num_... %设置测试集样本数为78,训练集样本为100[ndata, D] = size(Data); %ndata表示数据集样本数,D...
  • 如何利用MATLAB进行数据插值?

    万次阅读 多人点赞 2020-04-20 19:57:51
    文章目录前言1 引例-零件加工问题2 数据插值的...本文是科学计算与MATLAB语言课程的第5章第3、4小结的学习笔记,通过查阅本文,可以轻松掌握利用MATLAB进行数据插值。Enjoy your reading!Enjoy\ your\ re...
  • Matlab读取MNIST数据

    万次阅读 多人点赞 2018-06-12 16:39:43
    mnist database(手写字符...该问题解决的是把28x28像素的灰度手写数字图片识别为相应的数字,其中数字的范围从0到9.共有四个文件需要下载:train-images-idx3-ubyte.gz,训练集,共 60,000 幅(28*28)的图像数据...
  • 此基本模型向您展示了如何将来自 Keysight(以前称为安捷伦测试与测量)示波器的实时数据采集到 Simulink 中。 该模型是为 Keysight 6000 系列示波器开发的,但也可以与其他 Keysight 示波器一起使用,只需稍作修改...
  • MATLAB中的数据类与图像类型 今天主要讲的是在MATLAB下,怎么实现数据类、图像类型之间的转换。首先我们需要先了解一下数据类和图像类型。 数据类: 在MATLAB中,关于数据类型一共包括了10项,分别包含了8项数值...
  • 我还有一个带有5个DHT22传感器的包装,我想要一起测试,看它们是否读取相同的值并且它们在制造商规定的公差范围内。 如果您拥有所需的MATLAB软件包并且已在MATLAB脚本中分配了正确的串行端口,则此处上载的代码应该...
  • 常规 ifanbeam 函数会丢弃部分由 fanbeam 生成的正弦图数据:它仅保留 180° + fanAngle 角度范围,并像短扫描一样重建。 论坛上的一段测试代码提到并证明了这一点...
  • 数据融合matlab代码DDR网络 正式实现“ DDR-Net:学习具有动态深度范围的多阶段多视图立体声” 安装 要求 python 3.6 Pytorch> = 1.0.0和<= 1.2.0(我们建议不要使用高于1.2.0的Pytorch版本,因为插值可能会出现...
  • matlab导入excel数据

    2021-11-29 13:52:19
    直接matlab点开excel文件,选中要导入的 选择生成实时脚本 结果如下: %导入电子表格中的数据 %用于从以下电子表格导入数据的脚本: % 工作簿: C:\Users\86178\Desktop\新型标定论文\calculate_location_...
  • 文章目录MATLAB实现基于BP神经网络的手写数字识别+GUI界面+mnist数据测试一、题目要求二、完整的目录结构说明三、Mnist数据集及数据格式转换四、BP神经网络相关知识4.1 简介4.2 基本原理4.3 详情五、相关代码详情...
  • 创建 IsSupportedTest 测试用例。在此示例的后续步骤(高亮文件中的特定函数)中,请参阅以下 ... matlab.unittest.TestCasemethods(TestClassSetup)function TestPlatform(testcase)testcase.assumeFal...
  • 本文代码均已在 MATLAB R2019b 测试通过,如有错误,欢迎指正。 另外,这次实验都是调用Matlab现成的函数,没什么技术含量。 (一)聚类分析的原理 聚类是将数据分类到不同的类或者簇这样的一个过程,所以同一个簇中...
  • 利用matlab将三维数据画成三维立体图

    万次阅读 多人点赞 2018-08-20 14:13:14
    数据利用matlab画出图,最开始是导入数据,然后处理数据,最后将处理的数据画出来。 所以我将它分为三个步骤。 第一步:导入数据 如果是mat数据。可以直接load 如果是txt数据。可以用txtread 如果是excel数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,948
精华内容 5,179
关键字:

matlab测试数据时范围

matlab 订阅