Making a nice and small 'Loding Data' Script

9 次查看(过去 30 天)
Hey,
I am currently trying to write a script that should be at the beginning of a larger one.
The user would run the script and be asked by the program:
-Where is the file ?
-Filename?
-other (for later)?
The script should then load the requested file into Matlab. It is measurement data in a .txt file.
I searched a lot and tried it like this:
But it doesn't work as hoped
box = msgbox('Hello, blablabla');
%set(box, 'position', [500 500 200 100]);
pause(1.2)
Folder = uigetdir();
Folder_string=string(Folder);
prompt = {'Filename:','other:'};
dlgtitle = 'blablabla';
%size of the window
width = 75;
height = 1;
dims = [height, width];
definput = {'Filename','other'};
answer = inputdlg(prompt,dlgtitle,dims,definput);
Dataname=string(answer(1,1));
other=string(answer(2,1));
%% Import
% Use Var: 'Dataname' and 'Folder' for Import:
Data = load(fullfile(Folder_string,Dataname));
After choosing the path an the filename an error appears. :(
"Error using load Number of columns on line 3 of ASCII f
ile C: \ bla \ bla \ bla \ bla \ bla \ filename must be the same as previous lines.
Error in dialog (line 45) Data = load (fullfile (Folder_s, Dataname));"
Now i dont know what to do......
  6 个评论
Rik
Rik 2020-4-10
That looks like a very strange file. It looks like 3 files were merged.
You can select the lines you're interested in like this:
file_contents=fileread('SBA15_Data.txt.txt');
file_contents=strsplit(file_contents,'\n');
file_contents=file_contents(6:605);
Then you only need to parse them to numeric values.

请先登录,再进行评论。

采纳的回答

Rik
Rik 2020-4-11
The code below should read your file and convert it to a double array.
file_contents=fileread('SBA15_Data.txt.txt');
file_contents=strsplit(file_contents,'\n');
file_contents=file_contents(6:605);
parse_val=@(str) cellfun(@str2double,strsplit(strtrim(str),' '));
x=reshape(file_contents,[],1);
x=cellfun(parse_val,x,'UniformOutput',false);
x=cell2mat(x);
  2 个评论
Wenzel Gaßner
Wenzel Gaßner 2020-4-12
OK thanks,
how would I have to change your script to open the file from another folder location?
I let the user choose the location and save it in a variable:
Folder = uigetdir();
Rik
Rik 2020-4-12
file_contents=fileread(fullfile(Folder,'SBA15_Data.txt.txt'));

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 App Building 的更多信息

产品


版本

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by