MATLAB Answers

0

Read dada from a file

dan oltean さんによって質問されました 2019 年 7 月 19 日
最新アクティビティ Adam Danz
さんによって 編集されました 2019 年 7 月 20 日
So, I have an input text file(.txt) looking something like this: X:0.34, y:0.45, z:0.32, t:0.002
How can I read each variable separately like a column for x, one for y... and store them into matlab?

  7 件のコメント

dan oltean 2019 年 7 月 20 日
Sorry for the inconvenient. I attached the text here. Thank you
X:0.0511,Y:3.1803,Z:7.7935,Ts:0.0> X:-0.0519,Y:3.2234,Z:7.602,Ts:0.005004883> X:-0.2841,Y:3.2641,Z:7.5804,Ts:0.009979248> X:-0.6074,Y:3.3622,Z:7.7911,Ts:0.014953614> X:-0.8085,Y:3.458,Z:8.1622,Ts:0.019927979>
Adam Danz
2019 年 7 月 20 日
We can work with that! In the image you shared earlier, each set of x:... Y:... Z:... Ts:... has it's own row. But in the text you shared above, it looks like there can be multiple X,Y,Z,Ts per line. In fact, there are no line breaks in the text you shared so all of that is on 1 line. These details are important to set straight before designing a solution.
Tudor Oltean 2019 年 7 月 20 日
Each X,Y,Z,Ts has it's own row.
thank you

サインイン to comment.

1 件の回答

Adam Danz
回答者: Adam Danz
2019 年 7 月 20 日
 採用された回答

Attached is the text file you described named xyz.txt.
% Read in the file
t = fileread('xyz.txt');
% Split text where '>' marks end of each row
ts = strsplit(t,'>');
% Extract X value
[Xc,~] = regexp(ts,'X:(.*),Y','tokens','match');
% Extract Y value
[Yc,~] = regexp(ts,'Y:(.*),Z','tokens','match');
% Extract Z value
[Zc,~] = regexp(ts,'Z:(.*),Ts','tokens','match');
% Extract Ts value
[Tsc,~] = regexp(ts,'Ts:(.*)$','tokens','match');
% Create table
T = table(str2double(cellfun(@(x)x{:},[Xc{:}],'UniformOutput',false))', ...
str2double(cellfun(@(x)x{:},[Yc{:}],'UniformOutput',false))', ...
str2double(cellfun(@(x)x{:},[Zc{:}],'UniformOutput',false))', ...
str2double(cellfun(@(x)x{:},[Tsc{:}],'UniformOutput',false))', ...
'VariableNames', {'X','Y','Z','Ts'});
Result
T =
5×4 table
X Y Z Ts
_______ ______ ______ _________
0.0511 3.1803 7.7935 0
-0.0519 3.2234 7.602 0.0050049
-0.2841 3.2641 7.5804 0.0099792
-0.6074 3.3622 7.7911 0.014954
-0.8085 3.458 8.1622 0.019928

  2 件のコメント

Tudor Oltean 2019 年 7 月 20 日
Thank you very much!!! You saved me
Have a good day! :)
Adam Danz
2019 年 7 月 20 日
Glad I could help!

サインイン to comment.



Translated by