matlab导入并处理数据:xmltxtxlsx文件

Posted feynmania

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab导入并处理数据:xmltxtxlsx文件相关的知识,希望对你有一定的参考价值。

一、matlab导入并处理xml文件数据

xmlDoc = xmlread(position_sen2_mod1.xml);       %position_sen2_mod1.xml为删除了network.dtd这一行的文件
NodeArray = xmlDoc.getElementsByTagName(node);  %将所有node节点放入数组FDsArray
X_all_pos=zeros(1,NodeArray.getLength-1);      %X_all_pos存储全部节点的x坐标;一共13个有意义的节点,最后一个节点不计入,所以有getLength-1
Y_all_pos=zeros(1,NodeArray.getLength-1);         %Y_all_pos存储全部节点的y坐标;
NodeID_array=cell(1,NodeArray.getLength-1); 
%循环读取节点坐标位置
for i = 0 : NodeArray.getLength-1                 %只取前13个有意义的节点(连/排/班),最后一个节点无意义
    countAttr=0;                                  %countAttr作为想要搜寻的节点属性的index;
%NodeArray.item(0)对应第i个节点的xml代码部分:<node name="p-1" model="HopRadioNode" mobility="mobile" ignore_questions="true" min_match_score="strict matching">
%.item(i)对xml代码的每行的多个属性值进行索引; thisItem
= NodeArray.item(i); %NodeArray.item(i)对<node name...>中的属性值进行索引;将该属性值赋值给ThisItem %提取节点的编号,移动节点:item(0),"true"//item(1):‘strict matching‘//item(2):‘mobile‘//item(3):‘HopRadioNode‘//item(4):‘p-1~3‘,‘b-1~9‘ %提取节点的编号,固定节点:item(0),"true"//item(1):‘strict matching‘//item(2):‘HopRadioNode‘//item(3):‘L‘ if i~=3 %除了连节点3为固定节点,其余节点均为移动节点 NodeID = char(thisItem.getAttributes.item(4).getValue); %p排节点和b班节点为移动节点,ID属性所在位置为item(4) NodeID_array{i+1}=NodeID; %NodeID_array()存储每一个节点的位置 else NodeID = char(thisItem.getAttributes.item(3).getValue); %L连节点为固定节点,ID属性所在位置为item(3) NodeID_array{i+1}=NodeID; %%NodeID_array()存储每一个节点的位置 end childNode = thisItem.getFirstChild ; %<node name...>的第一个属性子节点:<attr name...> while ~isempty(childNode) % 遍历所有子节点,也就是遍历所有attr节点,当属性子节点非空时,进入while循环 if childNode.getNodeType == childNode.ELEMENT_NODE ; % 检查当前节点没有子节点?【若为0,则跳出if,转入下个childNode节点;若为1,则读取属性子节点】?        %childNodeNm = char(childNode.getTagName); % 当前节点的名字:attr   %childNodeData = char(childNode.getFirstChild.getData) % 当前节点的内容   childAttributes = char(childNode.getAttributes.item(1).getValue); %得到第一个节点的属性名称thisItem.getFirstchild.getAttributes.item(i);得到属性值 .getvalue   x=str2double(childAttributes); %将字符串类型数据转化为double型数据   countAttr=countAttr+1; %由于要提取的第二个属性值y_position在第二个<attr name...>中,所以countAttr+1; if (mod(countAttr,32)==1) %每一个<node name...>一共有32个<attr name...>; 只需要提取出每个node的第一个属性<attr name=‘x_position‘...>,即x坐标位置,所以用求余函数mod进行条件判断 x_pos=x;             %将x存进x_pos; x_pos每次循环都会变,主要为了检查;也可以直接注释掉,令X_all_pos(i+1)=x; X_all_pos(i+1)=x_pos; elseif (mod(countAttr,32)==2) %只需要提取出每个node的第二个属性<attr name=‘y_position‘...>,即x坐标位置,所以用求余函数mod进行条件判断 y_pos=x; %同上 Y_all_pos(i+1)=y_pos; end end % End IF childNode = childNode.getNextSibling; % 切换到下一个有效节点   %ChildNodeAttributes = char(thisItem.getAttributes.item(j).getValue) end % END WHILE end % END FOR end % END FUNCTION

 二、matlab导入txt 文件数据

%导入txt文件的几种形式
%如果txt文件中均为double类型的数组,下面三种方法均可以用
data1=textread(data.txt‘) %可选择性读取:详见:http://blog.sina.com.cn/s/blog_9e67285801010bju.html
data2=load(data.txt‘) %只能读取数字
data3=importdata(data.txt) %可以读取字符串和数字
%如果txt文件中有字符串型数据存在;可以用第三种方法,将数据存储为结构体数据
ban1_sen1_txt3=importdata(‘班2信息2.txt‘);

 三、matlab导入.xls;.xlsx 文件数据

%导入班节点数据
[num_2ban1,~,raw_2ban1]=xlsread(sen2ban1.xlsx);   %num_2ban1只返回数值数据 ,raw_2ban1返回包括字符串的数据
[num_2ban2,~,raw_2ban2]=xlsread(sen2ban2.xlsx);
[num_2ban3,~,raw_2ban3]=xlsread(sen2ban3.xlsx);

 

以上是关于matlab导入并处理数据:xmltxtxlsx文件的主要内容,如果未能解决你的问题,请参考以下文章

关于MATLAB处理大数据坐标文件

Matlab如何导入mat文件并查看其中的数据

从Excel向MATLAB中导入数据出现了nan怎么处理

excel数据导入matlab处理,全部显示NAN..怎么解决?

Matlab中 如何导入png图片 并进行中值滤波(3*3) 然后进行二值化处理阈值为128 如果东西好还可以进行追分

如何将excel中数据导入matlab并存入数组中