Matlab提取excel表格特定地方数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab提取excel表格特定地方数据相关的知识,希望对你有一定的参考价值。
要提取的数据位于“Data Points”的下一行,但是在每个Excel文件中,“Data Points”这个“Data Points”的位置是不一样的。
要提取的内容是一个从5.491开始的71*61矩阵。
提取后存入Matlab矩阵,以Excel文件的B2处的内容命名。
看你的描述应该已经会用 xlsread 读 excel 了。
如果位置不确定的话,只能先把整个表读出来,然后在第一列里找到 Data Points 所在的行,然后取出它下面的矩阵。
赋值变量的话,可以用 eval()。
下面是个简单的例子,仅供参考,你还得根据自己的情况改改:
% 读 excel,因为你的数据是字符串与数字混杂的情况,需要用 raw[~, ~, raw] = xlsread('test.xlsx', 1);
% 找 Data Point 所在的行,我这假设就在第一列,如果不是你得稍微修正一下。
ind = find(strcmp(raw(:,1), 'Data Point'));
if isempty(ind)
% 没找到,需要做其它处理
end
% dim 是矩阵的维度
% 你的情况应该是 [71 61],我这只是个例子
% offset 是那个矩阵的位置。
% [1 1] 的意思是话矩阵在那个空白格的下一行,下一列。自己体会。
dim = [3 3];
offset = [1, 1];
data = cell2mat(raw(offset(1)+(ind+1:ind+dim(1)), ...
offset(2)+(1:dim(2))));
% H1 你得再去另一个表里读,位置知道话比较简单,我这假设你已经读到了。
% eval([var_name, ' = data;']) 相当于执行 H1 = data;
var_name = 'H1';
eval([var_name, ' = data;']);
% 显示结果:这暗示 H1 这个变量已经存在了
display(H1);
test.xlsx 的内容如下:
程序:
clc;clear all;
xlsread('绝对路径+1.xls','sheet1','a2:b5')
程序结果:
excel说明:
明白没?
追问要提取的数据位于“Data Points”的下一行,但是在每个Excel文件中,“Data Points”这个“Data Points”的位置是不一样的。
追答你把文件附上 我针对性编程!
追问谢谢,我已经搞定。
本回答被提问者和网友采纳 参考技术B导入数据时,我习惯
从这里导入,会出现
根据需要进行数据的截取,你所要求的是需要编一个小程序的,它还没那么智能可以一步实现你的需要。
如果是编程个小程序的话,思路就是用循环找到你说的“Data Points”,提取行列值,然后再进行所需数据的提取
参考技术C操作如下:NUMERIC = XLSREAD(FILE,SHEET,RANGE)。
FILE是文件名,SHEET是工作表名,RANGE是读的位置范围,都是字符串。
RANGE不定可以用strcat函数来生成所要位置的字符串。
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
先全部提取,然后按照你的条件筛选出相应的数据。
以上是关于Matlab提取excel表格特定地方数据的主要内容,如果未能解决你的问题,请参考以下文章