在matlab中如何控制数据的输出格式?

2024-05-19 03:48

1. 在matlab中如何控制数据的输出格式?

1、第一步在我们的电脑上打开matlab,在命令行窗口中创建了一个变量str=12345.1123456789;,使用 format;str显示出来,可以看到默认是short格式,short是短整式,显示小数点后四位,如下图所示:

2、第二步我们通过“format long;str”代码,让数据显示格式变为长格式(long),如下图所示:

3、第三步通过“ format short g;str”代码,让数据显示格式变为短紧缩格式,可以根据需要设置数据的不同显示格式,如下图所示:

4、第四步我们点击主页中的预设,去设置创建变量,数组的默认显示格式,如下图所示:

5、第五步进去预设项界面之后,点击变量,可以看到默认数组变量格式为short,如下图所示:

6、第六步我们点击下拉列表可以设置默认数组变量的显示格式,点击确定就设置完成了,如下图所示:

在matlab中如何控制数据的输出格式?

2. 在matlab中怎么读取txt格式的数据文件

根据txt文档不同种类介绍不同的读取数据方法 :

一、纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 。
例如test.txt文件,内容为“17.901 -1.1111 33.045 
                                          17.891 -1.1286 33.045                                           17.884 -1.1345 33.045” 可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt 
 
“你好 欢迎来到 振动论坛 
vib.hit.edu.cn 1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555” 
这样的文件怎么读入数据呢? 
方法有多种,现举两个比较简单实用的。 
 
方法一: 
file/import data....../next/finish >> whos 
Name           Size                   Bytes Class data           5x4                      160 double array textdata       4x1                      300 cell array Grand total is 54 elements using 460 bytes >> data data = 
           1          11         111        1111            2          22         222        2222            3          33         333        3333            4          44         444        4444            5          55         555        5555 >> textdata textdata = 
    '你好' 
    '欢迎来到'     '振动论坛' 
    'vib.hit.edu.cn' 
方法二: 
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4) 
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。 
这里%s的个数和[a1,a2,a3,a4]对应。 
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4) a1 =     '1'     '2'     '3'     '4'     '5'  a2 =     '11'     '22'     '33'     '44'     '55'  a3 =     '111'     '222'     '333'     '444'     '555'  a4 = 
    '1111'     '2222'     '3333'     '4444'     '5555' 
因以字符串的形式读入,所以有''。

3. matlab怎么读取文本文件中的数据?

方法一:
A=importdata(file,space,line)
其中,file是所读取的文件名,space是特定的分隔符,line是一个数字,指文本中字符串文字的行数,如上文的数据中line=4。
此代码的含义是,line行是title,line+1行到end是数据,按特定分隔符space读取数据。此方法可以读取文本在上和数据在下的文件。
A是一个sturct,其中A.data就是所需的数据了。
exapmle:
A=importdata('test.txt','
',4);%运行即可取得数据A.data
此方法也可以按以下操作获取:
在文件菜单中选择
file/import
data,按照提示进行操作至结束。
在
command
窗口中输入
>>
whos
Name
Size
Bytes
Class
data
5x4
160
double
array
textdata
4x1
300
cell
array
Grand
total
is
54
elements
using
460
bytes
>>
data
data
=
1
11
111
1111
2
22
222
2222
3
33
333
3333
4
44
444
4444
5
55
555
5555
>>
textdata
textdata
=
'你好'
'欢迎来到'
'百思论坛'
'www.baisi.net'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%d,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>>
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1
=
'1'
'2'
'3'
'4'
'5'
a2
=
'11'
'22'
'33'
'44'
'55'
a3
=
'111'
'222'
'333'
'444'
'555'
a4
=
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。
文件内容形式二(假定文件名为test2.txt):
你好
1
11
111
1111
欢迎来到
2
22
222
2222
百思论坛
3
33
333
3333
www.baisi.net
4
44
444
4444
5
55
555
5555
说明:这种内容格式的文件用上面的方法是不行的。
方法三:
以下是由chinamaker编写的一种方法,但是需要重新建一个文本。
fidin=fopen('test2.txt');
%
打开test2.txt文件
fidout=fopen('mkmatlab.txt','w');
%
创建MKMATLAB.txt文件
while
~feof(fidin)
%
判断是否为文件末尾
tline=fgetl(fidin);
%
从文件读行
if
double(tline(1))>=48&&double(tline(1))<=57
%
判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline);
%
如果是数字行,把此行数据写入文件MKMATLAB.txt
continue
%
如果是非数字继续下一次循环
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt');
%
将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>>
MK
MK
=
1
11
111
1111
2
22
222
2222
3
33
333
3333
4
44
444
4444
5
55
555
5555

matlab怎么读取文本文件中的数据?

4. matlab 数据显示格式

如果以短整式显示(默认),则为如下:
>> x = 1215.678978234756;

>> format;x

可以看到,数据显示时以科学计数法显示为: x = 1.2157e+03
说明:在数据计算与显示输出时,常需要控制数据显示格式,matlab默认的数据显示格式是短整式(short),当数据为实数时,以小数点后4位的长度显示;当数据为整数时则以整数显示。数据显示格式以format指令控制。

如果要以长格式(long)显示,那么可以输入如下指令:
>> format long;x

回车后输出如下: x = 1.215678978234756e+03

如果需要短紧缩格式,也就是我们习惯的书写格式,可采用如下指令:
>> format short g;x

输出数据如下: x = 1215.7

当然,也可以采用有理格式显示(近似分数)
指令:
>> format rational;x

输出: x = 34039/28  


需要知道的是,数据显示格式,并不会影响数据的实际数值大小,不会影响计算的精度,在计算过程中matlab是以约16位有效数字的。

5. matlab能读取什么格式文件格式

1、用matlab读取avi 视频(只能读一定压缩各式的avi 电影,这是因为avi视频文件的编码
有很多,而matlab只支持部分编码格式。可见
blog.csdn.net/IdoIwill/article/details/2125838) aviinfo('d:\abc.avi');  
%显示存在d 盘文件abc.avi 的信息,在matlab2010 版本中,该函数可以换成mmreader mov=aviread('abc:.avi');   %读入电影abc.avi movie(mov);             %放映电影  
2、将avi视频转成图片序列 
mov=aviread('d:\abc.avi'); %读入 
Vframes=size(mov,2);   %读取视频的帧数,mov 为1*1179 struct,struct就是第4点所介绍的 for i=1: Vframes 
strtemp=strcat('d:\转换的图片\',int2str(i),'.','jpg'); %将每帧转成.jpg 的图片 imwrite(mov(i).cdata(:,:,), mov(i).colormap, strtemp);  % 把图像写入磁盘 end  
3、读取avi视频第index帧有三种使用方式(不适用于索引图): 
第一种:mov=aviread(filename);   % 读入视频 
frame=mov(index);       %读取avi 文件的第index 帧图像; img = frame.cdata;        % 读取图像的颜色信息 
第二种:frame = aviread(filename, index);          img = frame.cdata; 
第三种:mov = aviread(filename);         frame = mov.cdata;         img = mov{index}; 例:%读取第一帧图像 
mov = aviread('highwayI_raw.AVI'); frame=mov(index); imshow(frame.cdata);   
4、读取avi视频第index帧图像后,所储存帧格式是一个结构体(struct),该结构体有两个元素:cdata 和colormap 
例: 
frame = aviread('highwayI_raw.AVI', i); 
frame.cdata 表示了一个数据数组,彩色图像就是3 维的,灰度图像就是2 维的。也就是相当于I=imread(‘abc.jpg’)后的数组I 
frame.colormap 见(help aviread) 
%%%%%了解了以上四点,处理视频文件就可以相当于图像文件一样处理了%%%% 
5、将彩色图像转换为灰度图像,很简单: 
frame = aviread('highwayI_raw.AVI', i); 
f_gray = rgb2gray(frame.cdata); 这样就可以将文件的第i帧转换为灰度图像。  
6、 创建avi视频文件 
aviobj = avifile(filename) 
aviobj = avifile(filename, 'Param1', Val1, 'Param2', Val2,...) 描述: 
aviobj = avifile(filename) 创建一个AVI文件,其名称为filename,AVI文件对象的所有属性均取默认值。如果文件名中并不包含扩展名,则avifile为filename自动添加扩展名.avi。AVI是一种存储声音和图像数据的文件格式。 
avifile返回一个指向AVI文件对象aviobj的句柄,使用该对象在其他函数中可以引用该对象。AVI文件对象支持控制被创建的AVI文件的各方面属性和方法。 
aviobj = avifile(filename, 'Param1', Val1, 'Param2', Val2,...)使用指定的参数设置创建一个AVI文件。 参数说明表:

用户也可以使用结构语法来设置AVI对象的属性。Avifile对象的所有属性名字和参数表中的名字一样,并且要完整(除了keyframe这个参数)。例如,设定质量属性为100可以使用如下的语法
格式: 
aviobj = avifile('myavifile'); aviobj.quality = 100;  
实例 
这一实例显示如何使用函数avifile创建AVI文件example.avi。 t = linspace(0,2.5*pi,40); fact = 10*sin(t); fig=figure; 
aviobj = avifile('example.avi') [x,y,z] = peaks; for k=1:length(fact) h = surf(x,y,fact(k)*z); axis([-3 3 -3 3 -80 80]) axis off 
caxis([-90 90]) F = getframe(fig); 
aviobj = addframe(aviobj,F); end 
close(fig) 
aviobj = close(aviobj);  
7、mmreader 类---创建一个视频文件读取对象 
其实在 matlab2010 中,会建议采用mmreader、mmfileinfo等函数,如果使用aviread会出现警告如下: 
Warning: AVIREAD will be removed in a future release. Use MMREADER instead.  这是由于aviread接口需要要求avi文件时没有压缩的,这回导致其应用受到很大的 具体的mmreader 类描述可见matlab的help,以下摘自一些重点:  mmreader类 是为了创建一个读取视频文件的多媒体读取对象 描述: 
函数 mmreader可以读取所有的多媒体文件,返回值为一个结构体;然后可以用read 函数进行读取文件 
mmreader 支持的文件格式由各个操作系统平台决定 
Window: AVI(.avi)/MPEG-1(.mgp)Window Media Video(.wmv,.asf,.asx) 
Macintosh: AVI(.avi)/MPEG-1(.mpg)/MPEG(.mp4,.m4v)/苹果Quick Time movie(.mov)              以及被QuickTime在苹果系统上所支持的视频格式 
Linux:  支持系统中所安装的GStreamer 0.10 支持的视频格式,包括AVI/Ogg Theora(.ogg)  
mmreader创建视频文件有两种 obj = mmreader(filename); 
obj = mmreader(filename, ‘PropertyName’, ‘PropertyValue’); 
第一种只需提供(默认路径名)+文件名,就可以返回一个视频对象;使用第二种方法,可以设置属性名以及属性值
obj具有的属性如下:  BitsPerPixel  (只读)   视频的每个像素的位数  Duration     (只读)   每秒的总长度  FrameRate   (只读)   每秒的帧率  Height       (只读)  视频每帧图像的高度  Name        (只读)  对象所对应的视频文件名  NumberOfFrames (只读) 视频流中的总帧数  Path            (只读)视频文件所在的路径名  Tag                  定义视频对象的标签(默认’’)  Type            (只读) 对象的类名—mmreader  UserData               给用户自定义数据的区域  VideoFormat     (只读) 视频文件压缩格式  Width           (只读)视频每帧图像的宽度 通常obj对象配合read方法使用;read的使用方法如下: video = read(obj); 
video = read(obj,index); 或 video = read(obj, [index1,index2]) 
其实第一种默认是read(obj, [1,inf]) 第一种方法读入obj视频对象的所有帧; 第二种方法读入obj视频对象的第index帧. 
第一种方法返回的video对象是个4维数组,H-W-B-F H: 图像帧的高度 W: 图像帧的宽度 B: 图像帧的颜色通道 F: 图像帧的数目 
第二种方法返回就是图像帧的数据,灰度图像返回二维数组,RGB24图像返回三维数组。 读取第一帧图像例子如下 
obj = mmreader('abc.avi'); video = read(obj); img = video(:,:,:1); imshow(img);

matlab能读取什么格式文件格式

6. matlab怎么输入数据

就是在命令窗口中直接输入矩阵的元素,这种方法适用于有限元素、简单的矩阵。
用中括号,同一行的元素用逗号(,)或空格隔开,不同行的元素用分号隔开。

还可以双击工作空间(workspace)中的某一变量,在表格中填入任意矩阵的元素。


方法二、用M文件建立矩阵
在命令窗口中输入edit,新建M文件,语法和直接输入法一样。然后保存。

要使用时,在当前路径中我们可以看到这个M文件,右击,点”run“,M文件中的矩阵就加载到workspace中了。就可以直接使用这些变量。



方法三、特殊矩阵
1.零矩阵:zeros(n,m)
2.一矩阵:ones(n,m)
3.单位矩阵:eye(n)
其中n为行数,m为列数。格式有很多种,这些是常用的。

方法四、用冒号表达式建立向量
a=num1:step:num2
num1:起始数值,step:步长,num2:终止数值,这些可以是变量或数值表达式。

方法五、用linspace建立行向量
linspace(num1,num2,m)
num1:第一个元素,num2:最后一个元素,m为元素总数,省略m,则默认产生100个元素。

方法六、导入文档数据
很多数据来自Excel,txt等文档,我们没有必要一个一个输入,直接导入就可以。
用import data进行数据导入,找到相应文档,选择数据范围,确认导入就能在workspace中看到数据。
最新文章
热门文章
推荐阅读