Matlab-变量类型及不同类型文档的存取

02变量类型与档案存取

who:展示工作区中的变量
whos:展示工作区中的变量并且展示它们的大小,字节,类型和属性
Matlab中()用来取下标或者进行切片处理

Matlab Data Types:

​ 判断数据类型函数:

  • isinteger()
  • islogical()
  • isnan()
  • isnumeric()
  • isprime()
  • iscell()
  • ischar()
  • isempty()
  • isequal()
  • isfloat()
  • isglobal()
  • ishandle()
  • isinf()
1.logical
str = 'aardvark';
​		#字符串进行比较:
​		str2 = 'aardvark';
​		strcmp(str1,str2)
​				ans : 1            #(logical类型) 用函数进行比较

​		for i=1:length(str1)    #通过for循环自定义一个函数进行比较
​		    str1(i)====str2(i)
​		end
​				
​		#比较单个字符:
​		'a' == str     
			 ans : 1 1 0 0 0 1 0 0   # 进行逻辑运算
​		str(str=='a') = 'Z'
​				str : 'ZZrdvZrk'   #进行逻辑替换	
2.char ()

​ s1 = ‘Example’
​ s2 = ‘String’
​ s3 = [s1,s2] s3 : ‘ExampleStirng’
​ s4 = [s1;s2] s4 : Error:数组维度不同,必须长度相同
​ s5 = [s1;s1] s5 : ‘Example’
​ ‘Example’

3.numeric

int/uint8/16/32/64,single,double
加括号成为函数,例如 B=int8(A),使其转换

4.cell {}

​ 变量A 作为 cell Array(单元数组;单元阵列)时
​ 声明方法1:

A(1,1) = { [1 4 3;0 5 8;7 2 9] };
A(1,2) = {'Anne Smith'};
A(2,1) = {3+7i};
A(2,2) = {-pi:pi:pi};

​ 声明方法2:

A{1,1} =  [1 4 3;0 5 8;7 2 9] ;
A{1,2} = 'Anne Smith';
A{2,1} = 3+7i;
A{2,2} = -pi:pi:pi;
C = A{1,1}

#    C =

 			 1     4     3
			 0     5     8
			 7     2     9

D = A(1,1)

# 	 D =

  			1×1 cell 数组

   			 {3×3 double}

​ 在这里 A(1,1)或 被视作指针 指向里面的内容地址
​ A{1,1}返回 cell array的1,1位置上的内容

  • magic()

  • num2cell() 矩阵是num类型的 矩阵->单元数组

  • mat2cell(矩阵名,[1 1 1],3) 矩阵-> [1,2,3] 三个单元数组

    ​ [4,5,6]

    ​ [7,8,9]

    Multidimensional Array 多维度数组:

​ A{x,y,z} = 赋值麻烦

	cat(方向,矩阵1,矩阵2) 函数:       /方向:row 1 column 2 layer 3

​ reshape(矩阵,行数,列数) 函数: 重置原来矩阵的行列数

5.struct () .

​ .操作符:与C语言作用相同,结构体.属性,用来声明或取值

student.name = 'John Doe';
student.id = 'jdo2@sfu.ca';
student.number = 301073268;
student.grade = [100,75,74;...
          	       	 	95,91,85.5;...
           					100,98,72];
student
student = 
​	包含以下字段的 struct:

 			 name: 'John Doe'
 			   id: 'jdo2@sfu.ca'

   			 number: 301073268
   			  grade: [3×3 double]

​ 第二个同样类的成员声明方式:
​ >> student(2).name = ‘John Doe’;
​ 此时便形成了 student类的数组array
​ student =

		包含以下字段的 1×2 struct 数组:

		 name
		 id
		 number
		 grade
	>> student(2,1).name = 'alfonso sav';
	此时便形成了 student类的矩阵vector

​ fieldnames(student) 返回该结构的所有成员
​ rmfield(student,‘id’) 删除结构的某个成员

​ 嵌套结构:
​ 用这种方法声明结构时,()内为(成员,值,成员,值···)
​ A = struct(‘data’,[3 4 7;8 0 1],‘nest’,…
​ struct(‘testnum’,‘Test 1’,…
​ ‘xdata’,[4 2 8],‘ydata’,[7 1 6]));

function-handle(@) 函数句柄/匿名函数

于文档中存取变量

1.MATLAB fromatted data (.mat)

save load delete
是命令, 格式: save/load 文件名 -ascii
也是函数,save(‘文件名’) / load(‘文件名’,’-ascii’)
-ascii 可读文档,不加则为乱码

2.Text

save load

3.Excel spreadsheet (.xls,.xlsx)

xlswrite xlsread 只会读数字部分
score = xlsread(‘文件名’,‘B2:D4’)
A = mean(score’)’ 利用mean函数的求列和 '的矩阵转置求
每一行的平均数
xlswrite(‘文件名’,变量名,第几个sheet,‘单元格范围’)
xlswrite(‘文件名’,{‘列名’},第几个sheet,‘单元格坐标’)
[Score Header] = xlsread(‘文件名’) Score为数字 Header 为行名/列名

4.低阶文件输入输出

type命令: type filename 查看文件内容

fopen() fid = fopen(’[filename]’,‘permission’);
  • ‘r’ :read
  • ‘w’:write
  • ‘r+’:wirte
  • ‘w+’:read
  • ‘a’:append
  • ‘a+’:append
fclose()
fscanf()
fprintf()

x = 0:pi/10:pi;
y = sin(x);
fid = fopen(‘sinx.txt’,‘w’);

for i = 1:11
fprintf(fid,’%5.3f %8.4f\n’,x(i),y(i));
end
fclose(fid);
type sinx.txt

feof()

fid = fopen(‘asciiData.txt’,‘r’); i = 1;

while ~feof(fid)

name(i,:) = fscanf(fid,’%5c’,1);

​ year(i) = fscanf(fid,’%d’,1);

​ no1(i) = fscanf(fid,’%d’,1);

​ no2(i) = fscanf(fid,’%d’,1);

​ no3(i) = fscanf(fid,’%d’,1);

​ no4(i) = fscanf(fid,’%d’,1);

​ i=i+1;

end

fclose(fid);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值