经过一周的学习,今天终于把xml文件里面的数据用matlab读取,并将字符型转换为double型,成功画出图形。
test.xml文件如下,包含一种节点<meanValue>,长度为13
<?xml version="1.0"?>
<opencv_storage>
<meanValue>4.3504226684570311e+000</meanValue>
<!-- resumed -->
<meanValue>4.3509033203124998e+000</meanValue>
<!-- resumed -->
<meanValue>4.3439079284667965e+000</meanValue>
<!-- resumed -->
<meanValue>4.3564590454101566e+000</meanValue>
<!-- resumed -->
<meanValue>4.3604904174804684e+000</meanValue>
<!-- resumed -->
<meanValue>4.3600425720214844e+000</meanValue>
<!-- resumed -->
<meanValue>4.3680847167968748e+000</meanValue>
<!-- resumed -->
<meanValue>4.3724212646484375e+000</meanValue>
<!-- resumed -->
<meanValue>4.3660362243652342e+000</meanValue>
<!-- resumed -->
<meanValue>4.3726913452148439e+000</meanValue>
<!-- resumed -->
<meanValue>4.3650627136230469e+000</meanValue>
<!-- resumed -->
<meanValue>4.3665702819824217e+000</meanValue>
<!-- resumed -->
<meanValue>4.3624900817871097e+000</meanValue>
</opencv_storage>
matlab文件如下:
clear all;
clc;
xmlDoc = xmlread('test.xml'); %读取opencv中xml文件,表示的是矩阵。
meanValue_array= xmlDoc.getElementsByTagName('meanValue'); % 将所有meanValue节点放入数组meanValue_Array
for i = 0 : meanValue_array.getLength-1 % meanValue_Array.getLength 等于13
meanValue= char(meanValue_array.item(i).getFirstChild.getData); % 提取当前节点的内容,内容为char型
num(i+1)=str2double(meanValue); %将插入型转化为double型
fprintf('%d %f \n',i+1,num(i+1)); %输出double型数据
end
bestvalue=max(num); %
a=num./bestvalue; %归一化
figure(2);
plot(a,'-r+');
xlabel('order');
ylabel('value');
title('test');
fprintf('%f \n',bestvalue);
fprintf('%d \n',meanValue_array.getLength);
运行结果: