matlab 郭彦甫 4 数据类型与文件读写

学习记录园 / 2023-07-24 / 原文

数值类型  numeric

     默认为double类型    也可以使用类型转换将其转换为其他类型

n=3;
class(n)   %得到double类型

n=int8(30);
class(n)   %得到int8  类型

字符类型(char)     

%%
s1='h'         %char类型   显示占2个字节      
a=uint8(s1)    %强制将s1的char类型转换为numric类型    显示占1个字节   显示104   ascii码表
whos
%%
s2='H'         %同上
b=uint16(s2)   % 同上但是占用2个字节    16位无符号整数    显示72     大写字母和小写字母 相差32  (10进制)
whos

字符串类型  string

s1='Example';
s2='String';
whos
s3=[s1 s2]   % 显示  ExampleString  两个字符串串联在一起 
s4=[s1;s2];   %加;  组成行列式  失败  两个字符串 的维度不同   前者7列   后者6列

s5=[s1;s1]    %两个字符串长度要一致
显示
s5 =
Example
Example

拓展:

A1=['str1' 'str2'];
A2=['str3' 'str4'];
A3=['str5' 'str6'];
C=vertcat(A1,A2,A3)

输出
C =
str1str2
str3str4
str5str6

等价于C=[A1;A2;A3]

逻辑操作与赋值

str='aardvark';
'a'==str        %得到11000100     遍历str中的每个元素和a进行比较  如果%相同则返回1  不同返回0
str(str=='a')='Z'   %先执行括号内语句  得到11000100  逻辑运算结果,
%再将结果作为索引位置的开关  当该索引位置的值为1时替换为Z  如果为0
%则不替换  所以此时输出   ZZrdvZrk

字符串比较  

strcmp 函数

s1='exmaple';
s2='string';
strcmp(s1,s2)  %比较s1和s2   得到0
strcmp(s1,s1)  %比较s1和s1   得到1

比较函数还有eq   ne   regexp   regexpi   sort   strcmpi   strfind   strncmp   strncmpi

练习:

s1='i like the letter E'    
s2=s1(length(s1):-1:1)    %翻转字符串 
s3=s1(size(s1,2):-1:1) %翻转字符串 
s4=reverse(s1)  %翻转字符串 

输出
s4 =
    'E rettel eht ekil i'

 

t="Hello, world";
whos t    % 为何是160  
q="Something ""quoted"" and something else."     %  显示双引号  需要再用引号修饰
f=71;
c=(f-32)/1.8;
temptext="temperature is"+c+" °C"   %  用+ 连接两个字符串
  Name      Size            Bytes  Class     Attributes
  t         1x1               160  string              
q = 
    "Something "quoted" and something else."
temptext = 
    "temperature is21.6667 °C"

%字符串数组
A
=["a","bb","ccc";"dddd","eeeee","ffffff"] strlength(A) A = 2x3 string 数组 "a" "bb" "ccc" "dddd" "eeeee" "ffffff" ans = 1 2 3 4 5 6

 

结构体类型  structure

 一种存储异构数据的方法    结构包含成为字段的数组

1.创建结构体

 student.name='john doe';
student.id='jdo2@sfu.ca';
student.number=301073268;
student.grade=[100,75,73;...
    95,91,85.5;...
    100,98,72];
student
输出为
student = 
  包含以下字段的 struct:
      name: 'john doe'
        id: 'jdo2@sfu.ca'
    number: 301073268
     grade: [3x3 double]

向结构中添加信息  例如加入另一名同学的记录

student(2).name='ann lane';   %默认结构体中第一个记录的索引为1    所以此处再添加索引为2
student(2).id='aln4@sfu.ca';
student(2).number=301073269;
student(2).grade=[95 100 90;...
    95,82 97;...
    100,85 100];
student     %显示当前结构体中所有的记录
student(1).grade(2,3)=30;   %修改行列式中某个位置的值
student    %结果如下 第2行第3列的元素已经修改成功   

 

显示结构体中的某个值

student(1).grade(7)   %以列为索引方向
student(2).name

 

 

元胞数组  cell

 

 

 

高维元胞数组 

 

 

判断变量数据类型的函数 内建

 

 

 

文件读写

 

 

 

读写matlab格式的数据

 

 

 

读写excel表格 数据