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

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...