Effacer les filtres
Effacer les filtres

Making a nice and small 'Loding Data' Script

2 vues (au cours des 30 derniers jours)
Wenzel Gaßner
Wenzel Gaßner le 10 Avr 2020
Commenté : Rik le 12 Avr 2020
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 commentaires
Rik
Rik le 10 Avr 2020
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.
Wenzel Gaßner
Wenzel Gaßner le 10 Avr 2020
Thank you I'll try it like this tomorrow!

Connectez-vous pour commenter.

Réponse acceptée

Rik
Rik le 11 Avr 2020
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 commentaires
Wenzel Gaßner
Wenzel Gaßner le 12 Avr 2020
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 le 12 Avr 2020
file_contents=fileread(fullfile(Folder,'SBA15_Data.txt.txt'));

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by