matlab修改变量名称_MATLAB学习笔记1:如何快速创建多个仅有数字变化变量名?...
一直以来,本人用MATLAB都是想用什么功能就搜索什么功能,或者查看MATLAB帮助文档。(不得不说MATLAB的帮助文档做得真好)
由于没有系统学习过MATLAB,所以代码都很水……
好吧,开个文章来记录一下我现学现卖的MATLAB代码,以便以后查阅。
MATLAB学习笔记1:如何快速创建多个仅有数字变化变量名?
想实现这样一个功能,创立N个变量名,例如H1,
H2, H3, …,这里面英文部分是没有变化的,只有数字在依次递增。
很久之前,我使用eval函数实现这个功能,十分复杂,而且如果变量名太多,不方便调用,并且容易出现bug。例如我在本科毕设的时候有一段代码是这样的:
eval(['save H',num2str(l)])
此处就用到eval函数来储存数据到不同名称的文件里。我记得我为了实现这个功能,弄了一晚上,因为不熟悉MATLAB,需要太多debug的时间。
尽管eval函数十分强大,但是正是由于一个函数太过强大,反而需要更多的内存,CPU,以及人为的debug时间,间接降低了代码的效率。
这里,参考MathWorks的文档,提供一种更高效地创建变量名措施。
如果想创建一系列变量,其中只有数字在变化,可以使用元胞数组(cell)去代替使用eval,cell数组的效率更高。
什么是元胞数组(cell)?元胞数组是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属于不同的数据类型。
例如一个元胞数组:
a = 1;
b = 2;
A = cell(1,6); % 创建一个1行6列的cell
A={a,b,’c’,’hahaha’,233333,[1 2 3; 3 2 1]}; % Cell的赋值
那么,
A{1}=1
A{2}=2
A{3}='c'
A{4}='hahaha'
A{5}=233333
A{6}=[1 2 3; 3 2 1]
也就是说,cell里可以不同类型的数据,cell的每一个元素间的类型可以完全不同。
知道了元胞数组后,我们就可以以cell来“创建多个变量名”,也就是说,用H{1}来代替H1,H{2}来代替H2,H{3}来代替H3,以此类推。代码如下:
NumOfExp = 10;
H = cell(1,NumOfExp);
这样就创建了一个1行10列的空cell数组,可以用来储存不同的数据、数组。
最近编写的一个matlab代码,用于读取数据,将波高整合到第一行里,一开始写完后,发现很多地方是可以用for循环+变量名的改变来简化的,所以简化了一下变成如下形式:
%% Part1 Combine data %%
FileName = 'xxxx.xlsx';
Sheet1 = input('Please input sheet number (1,2,3...):');
currentFile = sprintf('Q%dData.mat',Sheet1);
% Or using "for Sheet1 = 1:x" loop to choose sheet automatically %
[number,txt,Alldata] = xlsread(FileName,Sheet1); % Read Excel file
n = size(number,1);
dt = 1/32;
NumberOfGauge = 3;
Row = cell(NumberOfGauge,1);
Col = cell(NumberOfGauge,1);
Gauge = cell(NumberOfGauge,1);
for k=1:3
[Row{k},Col{k}] = find(strncmpi(Alldata,sprintf('F00%d',k),n));
% Find the row and column of F00k
Gauge{k} = []; % The Gauge arrays contain final results
j=1;
for i=min(Row{k}):max(Row{k}) % Read data that belongs to Gaug{k}
A{j}=number(i,:); % Use cell "A" to save array data temporarily
if j>1
Gauge{k} = [Gauge{k} A{j}]; % Combine data into 1st row in Gauge{k} array
elseif j==1
Gauge{k} = A{j};
end
j = j+1;
end
save(currentFile,'Gauge');
end
这个代码就实现了使用cell数组来充当重复的变量名,并且将数据储存起来(文件名也在变化)。
我做这些数据处理都想尽量地“自动化”想尽办法去“偷懒”,但是又没有悉心钻研,没有找到合适的方法\代码,应该还是浪费掉了不少时间的……
嗯,小白第一篇MATLAB笔记,大神们如果有更好的方法还请告知,因为使用MATLAB的次数不多,所以还没有系统地去学习,感谢阅读!
碎金
2018.3.1
matlab修改变量名称_MATLAB学习笔记1:如何快速创建多个仅有数字变化变量名?...相关推荐
- matlab中x从0到5不含0,关于MATLAB的数学建模算法学习笔记
关于MATLAB的数学建模算法学习笔记 目录 线性规划中应用: (3) 非线性规划: (3) 指派问题;投资问题:(0-1问题) (3) 1)应用fmincon命令语句 (3) 2)应用指令函数:bi ...
- 【台大郭彦甫】Matlab入门教程超详细学习笔记二:基本操作与矩阵运算(附PPT链接)
Matlab入门教程超详细学习笔记二:基本操作与矩阵运算 前言 一.基本操作 1.把matlab当作计算器使用 2.变量 3.控制格式输出 二.矩阵运算 1.矩阵 2.矩阵索引 3.使用:创建向量 4 ...
- ASM学习笔记2 - 类的创建和修改 —— ClassWriter的综合应用
ASM学习笔记2 - 类的创建和修改 -- ClassWriter的综合应用 上回我们说到,通过使用ClassVisitor和ClassReader,我们能够分析已经存在的类.这一节中,我们将使用Cl ...
- 使用MATLAB求解方程求根——学习笔记
使用MATLAB求解方程求根--学习笔记 碎碎念:终于参加完了某比赛,连续大约摸了两天的鱼,就在昨天由于自己的操作失误,亲手将电脑给烧了,这就是上天在暗示我是时候加油为接下来的两场比赛和一个考试努力啦 ...
- 美赛整理之Matlab的工程数学计算学习笔记(高等数学)
美赛整理之Matlab的工程数学计算学习笔记(高等数学) 1.极限的定义和判别: 2.绘制特殊曲面 3.求两个空间曲面的交线 4.定积分的计算 5.多重积分的计算 1.截面法: 2.定义法 (1)先画 ...
- mysql root密码忘记2018_MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记
本文主要向大家介绍了MySQL数据库之2018-03-28设置及修改mysql用户密码学习笔记 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 退出mysql方法 quit或者e ...
- 机器学习 matlab工具箱,[matlab]机器学习及SVM工具箱学习笔记
机器学习与神经网络的关系: 机器学习是目的,神经网络是算法.神经网络是实现机器学习的一种方法,平行于SVM. 常用的两种工具:svm tool.libsvm SVM分为SVC和SVR,svc是专门用来 ...
- V-rep学习笔记:机器人模型创建2—添加关节
下面接着之前经过简化并调整好视觉效果的模型继续工作流,为了使模型能受控制运动起来必须在合适的位置上添加相应的运动副/关节.一般情况下我们可以查阅手册或根据设计图纸获得这些关节的准确位置和姿态,知道这些 ...
- FPGA系统性学习笔记连载_Day19【综合实验】之【数字钟】【Intel Cycle IV FPGA平台验证】
FPGA系统性学习笔记连载_Day19[综合实验]之[数字钟][Intel Cycle IV FPGA平台验证] 本系列为FPGA系统性学习学员学习笔记整理分享,如有学习或者购买开发板意向,可加交流群 ...
最新文章
- 用 go 写 WebAssembly入门
- 浅析图片XSS中的哪些技术问题
- Tomcat 使用apr优化
- 使用c++查看linux服务器某个进程正在使用的内存_精选20个常用的Linux命令
- 连接oracle配置文件参数,Hibernate3 +Oracle10g 集群,hibernate配置文件中如何编写连接参数...
- mysql general clomun_几个简单的sql查询
- java 扫描自定义注解_利用spring 自定义注解扫描 找出使用自定义注解的类
- Advanced+Apple+Debugging(2)
- C++中判断某一文件或目录是否存在
- css table 合并单元格
- 【大数据实战】Logstash采集-Kafka-ElasticSearch检索
- 多张png\jpg图片转化为一张pdf
- SpringBoot + Element UI 楠橘星后台管理系统一键打包部署教程文档
- 如何编辑扫描的PDF文件?
- Android 64位变32位
- 微信php提取,php提取微信账单的有效信息
- thx是什么意思_thx..是什么意思呢!
- inter-因特尔-官网
- 【SQL 解决鸡兔同笼问题】
- android view淡入淡出,Android ViewPager具有不同的animation,如放大,淡入淡出等