开发者

How to convert the values in the row of a cell to a vector in Matlab

开发者 https://www.devze.com 2023-02-18 00:49 出处:网络
I want the values of row 3 and 4 (=x and y) as shown in the data below. This is my Matlab code that I am trying to convert:

I want the values of row 3 and 4 (=x and y) as shown in the data below. This is my Matlab code that I am trying to convert:

fid = fopen('experimental_var.dat');

%# read it into one big array, row by row
fileContents = textscan(fid,'%s','Delimiter','\n');
fileContents = fileContents{1};
fclose(fid); %# don't forget to close the file again开发者_JAVA技巧

x=fileContents(5);
y=fileContents(6);

Can someone help to extract those values of <x> and <y> given in rows 3 and 4 of the data file pasted below.

    <title>(0.707107, 0.707107, 0)</title>
    <direction>0.707107 0.707107 0 </direction>
    <x>1.41421 2.82843 4.24264 5.65685 7.07107 8.48528 9.89949 11.3137 12.7279 14.1421 15.5563 16.9706 18.3848 19.799 21.2132 22.6274 24.0416 25.4558 </x>
    <y>2.08978 3.09925 4.80142 7.05703 9.66079 12.56 15.5897 18.6189 21.5112 24.1628 26.4319 28.2853 29.7518 30.7296 31.3153 31.5626 31.5141 31.2843 </y>
    <pairs>11781 11564 11349 11136 10925 10716 10509 10304 10101 9900 9701 9504 9309 9116 8925 8736 8549 8364     </pairs>


Instead of reading in the entire file contents and parsing them, it's possible to use TEXTSCAN to just read the values you want from the file:

fid = fopen('experimental_var.dat','r');       %# Open the file
x = textscan(fid,'%f','HeaderLines',4,...      %# Ignore 4 header lines
             'Delimiter',' </x>',...           %# Add <x> and </x> as delimiters
             'MultipleDelimsAsOne',true);      %# Combine delimiters into one
y = textscan(fid,'%f','Delimiter',' </y>',...  %# Add <y> and </y> as delimiters
             'MultipleDelimsAsOne',true);      %# Combine delimiters into one
fclose(fid);                                   %# Close the file
x = x{1};     %# Remove the cell array encapsulation
y = y{1};     %# Remove the cell array encapsulation
0

精彩评论

暂无评论...
验证码 换一张
取 消