load a data

I know that we can load data with different format,
I would like to put in a loop for example if I==1; load .... end
something that if the data is saved in *.txt or *.xls or *.mat or anything which Matlab can read it
the name of the file let say saved as X.
therefore
if I==1 load X load X.txt numeric= xlsread('X'); if I==2 uiimport end end
but I would likein the first step if i==1 , then if the file was one those format, then be loaded by Matlab

1 Commento

Niki
Niki il 31 Ago 2011
maybe this ?
if I==1
load X
elseif
load X.txt
elseif
numeric= xlsread('X');
elseif I==2
uiimport
end
end

Accedi per commentare.

Risposte (2)

Walter Roberson
Walter Roberson il 31 Ago 2011

0 voti

loadworked = false;
try
load(X)
loadworked = true;
end
if ~loadworked
try
uiimport(X);
loadworked = true;
end
end
if ~loadworked
error('Bleh, could not load or import the file!')
return
end

1 Commento

Niki
Niki il 31 Ago 2011
Thanks Walter but I would like to put 1 or 2
because i use of input ('Import data=> from file=1, from workspace=2 ? ');

Accedi per commentare.

Fangjun Jiang
Fangjun Jiang il 31 Ago 2011

0 voti

importdata() automatically does that. What is your purpose? To learn if-else statement?
To check the file extension, use fileparts().
I=input('Import data=> from file=1, from workspace=2 ? ');
if I==1
[PathStr,File]=uigetfile;
[Trash,FileName,FileExt]=fileparts(File);
if strcmpi(FileExt,'.txt')
a=textread(File);
elseif strcmpi(FileExt,'.mat')
a=load(File);
elseif strcmpi(FileExt,'.xls')
a=xlsread(File);
else
error('Unrecognized File!');
end
elseif I==2
%do stuff
else
error('Invalid input');
end

4 Commenti

Niki
Niki il 31 Ago 2011
Thanks Fangiun, as I said to Walter, I would like to put a command whether the data can be loaded from workspace or from file
then I would like if it is supposed to be loaded from directory (current folder) then if the file is in xls or any other format, it can be loaded without any problem
Fangjun Jiang
Fangjun Jiang il 31 Ago 2011
Okay, what do you want to do if from workspace?
Niki
Niki il 1 Set 2011
you think I should not mention a while ? because if it is not 1 nor 2 , then the program will stop , No?
therefore it should be something that until I enter 1 or 2 , the program need the input
on the other hand, I would like to read the data from a file
then I use of >>uiimport
I would like the program stay until I load the data using uiimport and then continue and not when I load the data then it stop
Fangjun Jiang
Fangjun Jiang il 1 Set 2011
See edit. You can use uiimport() or importdata()

Accedi per commentare.

Richiesto:

il 31 Ago 2011

Community Treasure Hunt

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

Start Hunting!

Translated by