Matlab学习——变量与档案存取
创始人
2024-03-21 04:49:16
0

一、变量

1. char和string

MATLAB里面的字符和字符串都是用单引号括起来的。

% 示例:a='I like China';
n=0;
for n=1:1:size(a,2)b(size(a,2)-n+1)=a(n);
end
disp(a);
disp(b);% 输出:>> work
I like China
anihC ekil I
>> 
% 示例:str='zhangpeng';
str(str=='z')='Z';
disp(str);% 结果:>> work
Zhangpeng
>> 

2. structure

% 示例:student(1).name='zhangpeng';
student(1).age=20;
student(1).birthday.year=2002;
student(1).birthday.month=1;
student(1).birthday.day=5;student(2).name='zhangwei';
student(2).age=18;
student(2).birthday.year=2003;
student(2).birthday.month=10;
student(2).birthday.day=10;% 结构体中套用结构体
student(3)=struct('name','Zhou Ziyu','age',23,'birthday',struct('year',1999,'month',6,'day',14));A(1)=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';
A(2).nest.xdata=[3 4 2];
A(2).nest.ydata=[5 0 9];
A.nest

3. cell

% 示例:%第一种声明cell的方法
a(1,1)={'zhangpeng'};
a(1,2)={20};
a(2,1)={[1 2 3;4 5 6;7 8 9]};
a(2,2)={1+2i};
disp(a);%第二种声明cell的方法
a={'zhangpeng',20,[1 2 3;4 5 6;7 8 9],1+2i};% 输出:ans =1     2     34     5     67     8     9

在cell中 {} 和 () 的区别:

%定义一个cella(1,1)={'zhangpeng'};
a(1,2)={20};
a(2,1)={[1 2 3;4 5 6;7 8 9]};
a(2,2)={1+2i};% 如果输入a(2,1)回车则只会显示3x3数组;如果输入a{2,1}则会显示数组的详细信息。>> a(2,1)
ans =1×1 cell 数组{3×3 double}>> a{2,1}
ans =1     2     34     5     67     8     9

4. reshape函数用法

b=reshape(a,3,2)表示将a矩阵变为3x2的矩阵

%示例:
a=[1 2 3;4 5 6];
b=reshape(a,3,2);
disp(b);
disp(a);% 输出:
>> Matlab011     54     32     61     2     34     5     6

5. cat函数的用法

cat(1,a,b)是将a、b两个矩阵竖向合并;cat(2,a,b)是将a、b两个矩阵横向合并;cat(3,a,b)是将a、b两个矩阵三维合并。

%示例:
a=[1 2 3 4];
b=[5 6 7 8];
c1=cat(1,a,b);
c2=cat(2,a,b);
c3=cat(3,a,b);%输出:
>> c1
c1 =1     2     3     45     6     7     8>> c2
c2 =1     2     3     4     5     6     7     8>> c3
c3(:,:,1) =1     2     3     4
c3(:,:,2) =5     6     7     8

二、档案高阶存取

1. 文档的存——save函数

a=magic(5);
%如果不在后面加上-ascii则打开文档后是乱码,看不见数据
save mydata1.mat;
%如果想要打开文档后可以直接看见内容则在后面加上-ascii
save mydata2.mat -ascii;

 2. 文档的取——load函数

注意:如果存的时候是用-ascii存储的,那么取出的时候也必须使用-ascii来去除。

load('mydata1.mat');
load('mydata2.mat','-ascii');

3. 文档的Excel读

xlsread('matlab.xlsx')或者xlsread('matlab.xlsx','B2:D4')效果一样,因为默认情况下就是读取数据。

>> score1=xlsread('matlab.xlsx','B2:D4');
>> score2=xlsread('matlab.xlsx');
>> score1score1 =90   100   10088    78    96100    89    78>> score2score2 =90   100   10088    78    96100    89    78

4. 文档的Excel写

xlswrite('matlab.xlsx',mymean,1,'E2:E4');

第一个参数是文件名 第二个参数是要写入的内容 第三个参数是文件页数 第四个参数是写入的位置。

% 计算出平均值放入E2到E4这一列
>> score=xlsread('matlab.xlsx');
>> mymean=mean(score')';
>> xlswrite('matlab.xlsx',mymean,1,'E2:E4'); score =90.0000  100.0000  100.0000   96.666788.0000   78.0000   96.0000   87.3333100.0000   89.0000   78.0000   89.0000

5. 同时提取文档中的数据和标题

% 用score提取数据,用name提取标题
>> [score name]=xlsread('matlab.xlsx');
>> scorescore =90.0000  100.0000  100.0000   96.666788.0000   78.0000   96.0000   87.3333100.0000   89.0000   78.0000   89.0000>> namename =4×5 cell 数组{'name'      }    {'Chinese'}    {'Math'  }    {'English'}    {'mean'  }{'Zhang Peng'}    {0×0 char }    {0×0 char}    {0×0 char }    {0×0 char}{'Zhang Wei' }    {0×0 char }    {0×0 char}    {0×0 char }    {0×0 char}{'Zhou Ziyu' }    {0×0 char }    {0×0 char}    {0×0 char }    {0×0 char}

三、文档的低阶存取

1.文档的写入

% 示例:
x=0:pi/10:pi;
y=sin(x);
fid=fopen('sinx.txt','w'); %fopen会返回文件的地址;‘w’的意思是可以对文件进行写
for i=1:11fprintf(fid,'%5.3f %8.4f\n',x(i),y(i)); %'%5.3f %8.4f\n'表示对输入的x,y的写入格式,"%5.3f"是指输出总共5个数字,小数点后面三个数字。
end
fclose(fid);
type sinx.txt;

输出:

2.文档的读出

% 示例:
fid=fopen('data.txt','r');
i=1;
while ~feof(fid)  % feof(fid)表示如果没有读到文件的末尾则返回0,如果读到文件末尾则返回1.name(i,:)  =fscanf(fid,'%10c',1);year(i)    =fscanf(fid,'%d',1);month(i) =fscanf(fid,'%d',1);day(i)     =fscanf(fid,'%d',1);i=i+1;
end
fclose(fid);

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...