###本章内容十分多

第三章:Variables and Data access

Data Types

numeric:double、single、int8(16、32、64bit[integer])、uint8(16、32、64bit[unsigned])


double转成integer:

 A = 20;      %double
 B = intB(A)    %double -->int

Character(char):记录一个字源

 s1 = 'h';   %H
 whos;
 unit16(s1);   %转为ASCLL码

String:字串

 s1 = 'Example'
 s2 = 'String'
 s3 = [s1 s2];    %[]是concatenation;左右组合,中间的space仅仅是吧两个变量分开,并不output
 s4 = [s1;s2];    %上下组合,字节大小要相同,即字数相同

Strcmp:比较字符串

 TF = strcmp(s1,s2)
 %比较s1与s2,如果二者相同,则返回1,反之0.文本大小与内容相同视为相等

Logical Operations

 str = 'aardbark';
 'a' == str       %判断这个数组中a的存在
 str(str == 'a') = 'Z'    %替换str中a为Z

Structure结构体

 student.name = 'Li Tianqi';
 student.id = '741495222@qq.com';
 student.number = 3200812015;
 stduent.grade = [100, 100, 199;...
  95, 95, 92;...
  100, 222, 34];
 student
 %如果要输入第二个student,只需要将student改为student(2);
 %可以使用student(3).grade(3)来output 100;
 %field储存数据

Structure Functions

 cell2struct%将单元格数组转换为结构体数组
 fieldnames%寻找field里的string目录
 getfield
 isfield
 isstruct
 orderfields
 rmfield%删除一个分支
 setfield
 struct%创造一个结构矩阵
 struct2cell
 structfun
 %具体用法自行查询

Nesting Structures(链表套娃XD)

 A = struct('data', [3 4 7; 8 0 1], 'nest',...
  struct('testnum','Test 1', ...
  'xdata', [4 2 8], 'ydata', [7 1 6]));   %变量名紧跟内容
 A(2).data = [9 3 2; 7 6 5];
 A(2).nest.testnum = 'Test 2';    %一个struct的不同内容
 A(2).nest.xdata = [3 4 2];       %同上,并且这三条记录在一个目录下的不同struct上
 A(2).nest.ydata = [5 0 9];       %不同的定义方式

Cell Array(储存阵列;矩阵套娃;使用{})

 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};
 ……
 %另一种定义方式
 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;
 ……

Accessing Cell Array

 A(1,1)   %pointer,仅仅查询1,1位置的东西是什么
 A{1,1}   %查询(1,1)位置的元素

Cell Array Functions

 cell
 cell2mat
 cell2struct
 celldisp
 cellfun
 cellplot
 cellstr
 iscell
 mat2cell %将矩阵每一组元素变成单独的矩阵
 num2cell %将矩阵每一个元素变成单独的矩阵
 EG:
  a = magic(3);
  b = num2cell(a);
  c = mat2cell(a,[1 1 1], 3)   %[1 1 1]是行,3是列
 struct2cell

Multidimensional Array(多维矩阵)

 cat()   %将两个东西接起来
 A = [1 2; 3 4];
 B = [5 6; 7 8];
 C = cat(1,A,B); %row--行排序
 C = cat(2,A,B); %column--列排序
 C = cat(3,A,B); %layer--层排序
 %维数的比较容易理解的表示方法
 reshape()
 %改变形状,条件是row1*column1 = row2*column2
 EG:
 A = {'James Bond', [1 2; 3 4; 5 6]; pi; magic(5)}
 C = reshape(A, 1, 4)   %reshape(A, row2, column2)

Checking Variable And Variable Status:检查数据类型

 isinteger
 islogical
 isnan
 isnumeric
 isprime
 isreal
 iscell
 ischar
 isempty
 isequal
 isfloat
 isglobal
 ishadle
 isinf

File Access:如何把Work Space和File System中的数据做交换

 save()  and  load();
  ·a = magic(4);
  save mydata1.mat
  save mydata2.mat -ascii    %-ascii目的是储存的文件能不能用一般的文字浏览器打开,但是第一种方式储存的东西更多
 %work space 储存到 File System
  ·load('mydata1.mat')
  load('mydata2.mat','-ascii')
 %Work space 读取 File System
 %储存指定的变量
  ·save('filename','variables')

Excel File Reading and Writing

 xlsread()
 Score = xlsread('04Score.xlsx')      %仅会读取number部分
 Score = xlsread('04Score.xlse','B2:D4')
 xlswrite()
 M = mean(Score')';
 %mean是对colomn做mean,所以遇到row排列平均时,需要做转置再做mean,输出回去再做转置转成row
 xlswrite('04Score.xlsx', M, 1, 'E2:E4');
 %xlswrite(filename,variable,sheet,location)
 xlswrite('04Score.xlsx', {'Mean'}, 1, 'E1');
 %写入一个字串作为标题
 %练习写入标准差
 [Score Header] = xlsread('04Score.xlsx');
 %将数字部分和文字部分分开处理;Score储存的形式是矩阵;Header储存的形式是cell-将数组部分当作[]
 %练习如何用xlswrite写入标题和内容

Low-level File Input/Output

 fis = fopen('[filename]', '[permission]');   %permission是读写权限;EG:'r','w','a'……
 fprintf(fid, format, x, y, ……); %‘写’指令
 fscanf(fid, format, size);  %size是读取data数
 feof(fid)   %读取完为止
 EG1:
 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));    %5.3f:有5个数位,小数点后有三位(位数包括小数点)
 end
 fclose(fid);
 type sinx.txt
 EG2:
 fid = fopen('asciiData.txt','r');
 i = 1;
 while  ~feof(fid)
  name(i,:) = fscanf(fid,'%5c',1);
  year(i) = fscanf(fid,'%d',1);
  …………
  noN(i) = fscanf(fid,'%g\n');
  i = i+1
 end
 fclose(fid);

Matlab %叁的更多相关文章

  1. MATLAB入门教程

    MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...

  2. MATLAB新手教程

    MATLAB新手教程   .MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,仅仅需将运算式直接打入提示号(>>)之後,并按入Enter键就可以.比如 ...

  3. (转)MATLAB入门教程

    MATLAB入门教程   1.MATLAB的基本知识 1-1.基本运算与函数    在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可.例如: ...

  4. Matlab常用函数集锦

    ndims(A)返回A的维数size(A)返回A各个维的最大元素个数length(A)返回max(size(A))[m,n]=size(A)如果A是二维数组,返回行数和列数nnz(A)返回A中非0元素 ...

  5. Matlab随笔之画图函数总结

    原文:Matlab随笔之画图函数总结 MATLAB函数画图 MATLAB不但擅长於矩阵相关的数值运算,也适合用在各种科学目视表示(Scientific visualization).本节将介绍MATL ...

  6. Matlab 绘制三维立体图(以地质异常体为例)

    前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...

  7. Matlab slice方法和包络法绘制三维立体图

    前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...

  8. Matlab 高斯_拉普拉斯滤波器处理医学图像

    前言:本程序是我去年实现论文算法时所做.主要功能为标记切割肝脏区域.时间有点久,很多细节已经模糊加上代码做了很多注释,因此在博客中不再详述. NOTE: 程序分几大段功能模块,仔细阅读,对解决医学图像 ...

  9. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  10. linux下配置matlab运行环境(MCR)

    在安装好的matlab下有MCR(MatlabCompilerRuntime)在matlab2011/toolbox/compiler/deploy/glnxa64下找到MCRInstaller.zi ...

随机推荐

  1. Django中logging的设置

    1.日志基础知识 日志与我们的软件程序密不可分.它记录了程序的运行情况,可以给我们调试程序和故障排查提供非常有用的信息.每一条日志信息记录了一个事件的发生.具体而言,它包括了: 事件发生时间 事件发生 ...

  2. Python学习笔记组织文件之将指定目录下的指定格式文件压缩到指定文件夹

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  3. password_encryption_type 和 pg_hba.conf 不匹配导致用户连不上

    # 问题概述xxx客户新上一套opengauss数据库,在测试中用户输入正确的密码,提示用户密码错误,导致用户被锁# 问题原因password_encryption_type 和 pg_hba.con ...

  4. Qt中的线程编程

    在基于操作系统的程序设计中,在处理多任务时,可以有多种方法,但效率较高的当属线程方式,下面就来讨论一下在Qt中如何实现线程编程. 先来说一下什么是线程.线程(thread)是操作系统能够进行运算调度的 ...

  5. flex布局的相关注意事项

    文献参考地址:https://www.cnblogs.com/qcloud1001/p/9848619.html 重点事项: 弹性容器的属性 作用于交叉轴 align-items :对单行起作用 al ...

  6. 01、kafka常用命令

    001.kafka版本 kafka_2.13-3.0.0 kafka_2.12-2.8.0 002.模拟给topic名称是 yikuang 的发一条数据(hello world) ./kafka-co ...

  7. redis之redisObject对象

    redisObject对象 无论什么数据类型,redis都是以key-value形式保存,并且所有的key都是字符串redis每存储一条数据,都会生成一个redisObject对象,通过redisOb ...

  8. Java基础——(综合练习)买飞机票和找素数

    package com.zhao.test; import java.util.Scanner; public class Test14 { /* 需求:机票价格按照淡季旺季.头等舱和经济舱收费. 输 ...

  9. 【个人笔记】Ubuntu 16.04 LTS 安装 Leanote 二进制版命令记录

    此命令根据<Leanote 二进制版详细安装教程 Mac and Linux>操作记录而得. 参考链接:https://github.com/leanote/leanote/wiki/Le ...

  10. SpringBoot整合mqtt协议,实现订阅topic并将消息存储到mysql数据库

    所需依赖如下: <dependencies> <dependency> <groupId>org.springframework.boot</groupId& ...