Matlab学习——变量与档案存取

news2024/12/29 8:51:46

一、变量

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     3
     4     5     6
     7     8     9

在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};

% 如果输入a(2,1)回车则只会显示3x3数组;如果输入a{2,1}则会显示数组的详细信息。

>> a(2,1)
ans =
  1×1 cell 数组
    {3×3 double}

>> a{2,1}
ans =
     1     2     3
     4     5     6
     7     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);

% 输出:
>> Matlab01
     1     5
     4     3
     2     6

     1     2     3
     4     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     4
     5     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');
>> score1

score1 =

    90   100   100
    88    78    96
   100    89    78

>> score2

score2 =

    90   100   100
    88    78    96
   100    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.6667
   88.0000   78.0000   96.0000   87.3333
  100.0000   89.0000   78.0000   89.0000

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

% 用score提取数据,用name提取标题
>> [score name]=xlsread('matlab.xlsx');
>> score

score =

   90.0000  100.0000  100.0000   96.6667
   88.0000   78.0000   96.0000   87.3333
  100.0000   89.0000   78.0000   89.0000

>> name

name =

  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:11
    fprintf(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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/65453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dockerfile的常用指令和构建案例

一、Dockerfile操作常用的指令 (1) FROM 镜像 指定新镜像所基于的基础镜像,第一条指令必须为FROM指令,每创建一个镜像就需要一条FROM指令 (2) MAINTAINER 名字 说明新镜像的维护人信息 (3) RUN命令 在所基于的镜像上执行命令,并提交到新的…

B2B商城交易平台搭建方案为专用设备行业注入新动力,加快产业数字化转型升级

专用设备是指设备的结构、性能专门针对某一种或一类对象,实现一项或几项功能的工业,包括工程机械、光伏设备、锂电设备、3C设备、半导体设备等。近年来,受市场对专用设备的应用需求不断扩大、产业技术升级趋势加快等影响,我国专用…

直播回顾:Coremail校园邮件安全防护交流会暨新技术应用分享

11月23日,Coremail校园邮件安全防护交流会暨新技术应用分享直播举办。 Coremail作为国内TOP级邮件系统厂商,服务上百家高校,特邀以下重磅嘉宾参与了本次圆桌讨论。 本次圆桌会主要探讨校园典型钓鱼邮件防范与新技术在校园邮件中的应用。 高校…

mysql 查询在一张表不在另外一张表的记录

SQL Join子句,主要用在select语句中,把两个或多个表的行结合起来,基于这些表之间的共同字段(往往是id字段)来查询,从多个表中返回满足条件的所有行。 常见join子句类型 常见join子句类型有INNER JOIN(同JOIN)、LEFT JOIN、RIGHT…

【Java学习Note】第8章 多线程

8. 多线程 文章目录8. 多线程8.1 程序、进程、线程8.2 线程的创建8.2.1 继承Thread类-创建线程方法之一8.2.2 Thread常用方法8.2.3 实现Runnable接口-创建线程方法之二8.2.4 两种多线程的区别8.3 线程得调度8.4 线程的生命周期8.5 线程的同步8.5.1 线程同步--Synchronized8.5.2…

html网页设计与制作:基于html设计整套招聘网站求职前端模板页面 静态网页HTML代码 学生网页课程设计期末作业下载

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

联通边缘AI:打造“职业技能”,助力行业高质量发展

内容来源:2022年11月12日,由边缘计算社区主办的全球边缘计算大会上海站圆满落幕。我们非常荣幸邀请到了联通数科首席AI科学家廉士国博士来分享,廉博士是中国图像图形学会三维视觉专委会委员、IEEE智能计算及多媒体通信委员会委员、国家工业互…

WSL VSCode运行C++项目

WSL VSCode运行C项目collect2: error: ld returned 1 exit statusboost库的链接安装并编译boost库:链接库(!!这一步有错误,下面会改正)/usr/include/boost/python/detail/wrap_python.hpp:57:11: fatal error: pyconfig.h: No suc…

RK3588平台开发系列讲解(SARADC篇)SARADC的工作流程

平台内核版本安卓版本RK3588Linux 5.10Android12🚀返回专栏总目录 文章目录 一、SARADC驱动二、SARADC常用接口三、SARADC源码分析1、SARADC驱动注册2、用例分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍SARADC的源码分析和工作流程。 一、SARADC驱…

【Flink】需求实现之独立访客数量的计算 和 布隆过滤器的原理及使用

文章目录一 独立访客数量计算二 布隆过滤器1 什么是布隆过滤器2 实现原理(1)HashMap 的问题(2)布隆过滤器数据结构3 使用布隆过滤器去重一 独立访客数量计算 public static void main(String[] args) throws Exception{StreamExe…

Locust学习记录3-用户类属性【host attribute,tasks attribute】

host attribute(主机属性) host属性是家长主机的URL前缀(即“https://www.baidu.com”)。 这是在Locust的web UI 或命令行上指定的,在Locust【--host】启动时使用该选项 【--host】如果在用户类中声明了一个host属性,那么在命令…

答网友提问 - SAP Business Technology Platform(BTP) 的计费模式

我的知识星球 有朋友向我提问: S4HANA(本地部署或云版)跟SAP家族系统以及非SAP系统的集成,sap的标准/推荐做法是通过BTP还是直接连接,或者是根据目标系统分别选择?有参考链接最好了。 还有BTP的收费模式是什么样的,是不…

业聚医疗通过聆讯:上半年营收6885万美元 钱永勋为实控人

雷递网 雷建平 12月5日血管介入器械公司――业聚医疗集团有限公司(OrbusNeich Medical Group Limited)(简称“业聚医疗”)日前通过聆讯,准备在香港上市。上半年营收6885万美元业聚医疗总部位于中国香港,是一…

springboot解决跨域问题

springboot解决跨域问题 文章目录springboot解决跨域问题一、跨域是什么?二、java解决CORS请求的方式1.返回新的CORSFilter(全局跨域)2.重写WebMvcConfigurer(全局跨域)3.使用注解CorsOrigin4.手动设置响应头&#xff…

如何安装Ambari集群_大数据培训

注意:以下操作主节点操作即可 1 制作本地源 制作本地源是因为在线安装Ambari太慢。制作本地源只需在主节点上进行。 1.1 配置HTTPD 服务 配置HTTPD 服务到系统层使其随系统自动启动 [roothadoop102 ~]# chkconfig httpd on [roothadoop102 ~]# service httpd …

[附源码]Python计算机毕业设计Django网上电影购票系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

股票量化分析工具QTYX使用攻略——均线系统多头排列选股

搭建自己的量化系统如果要长期在市场中立于不败之地!必须要形成一套自己的交易系统。如何学会搭建自己的量化交易系统?边学习边实战,在实战中学习才是最有效地方式。于是我们分享一个即可以用于学习,也可以用于实战炒股分析的量化…

【软件测试】软件测试工程师职位核心任务?测试人测试职业发展?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 你认为软件测试工程…

RDMA测试集:preftest安装与使用

RDMA测试集:preftest安装与使用 perftest是一组基于uverbs编写的测试程序,是RDMA性能相关的benchmark。可用于软硬件调优以及功能测试。 源码位置 linux-rdma/perftest: Infiniband Verbs Performance Tests (github.com) perftest测试软件包含的测试…

111个Python数据分析实战项目,代码已跑通,数据可下载

写在前面: 这里整理了111个数据分析的案例,每一个都进行了严格的筛选,筛选标准如下: 1. 有干货:杜绝纯可视化、统计性分析,有一定比例的讲解性文字 2. 可跑通:所有代码均经过测试,…