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);

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...