Borrar filtros
Borrar filtros

I am getting a 'Argument must contain a string' error.

3 visualizaciones (últimos 30 días)
[fileName,filePath] = uigetfile({'*.txt'},'Pick a file','MultiSelect','on')
pathToFile = fullfile(filePath,fileName)
x= size(pathToFile,2)
store=load(pathToFile(:,1));
prompt ='Please choose the Stress column';
stress=store(:,input(prompt));
prompt ='Please choose the strain column';
strain=store(:,input(prompt));
  4 comentarios
Adam
Adam el 8 de Mayo de 2017
Where does 'str' come from?
sivalogan satchithanandamoorthy
sivalogan satchithanandamoorthy el 8 de Mayo de 2017
I want user to open multiple file. 'str' is basically a folder for one of the file.

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 8 de Mayo de 2017
store = load(pathToFile{1});
You have multiselect on and you are selecting multiple files, so pathToFile could be a cell array of strings. pathToFile(:,1) would then be a cell array of strings. When you use multiselect, you get a row vector cell array, so pathToFile(:,1) would be a 1 x 1 cell array of strings. You cannot load() using a cell array of strings: you have to load() a character vector such as pathToFile{1}
Caution: when multiselect is on, but the user only selects a single file, the first output is a char vector; if the user selects multiple files then the first output is a cell array of strings. You should not assume that the user definitely selected multiple files, so you should protect against the possibility:
[fileName,filePath] = uigetfile({'*.txt'},'Pick a file','MultiSelect','on');
if isnumeric(fileName); disp('Cancelled!'); return; end
fileName = cellstr(fileName); %converts possible single string to cell array, leaves existing cell arrays the way they are.

Más respuestas (0)

Categorías

Más información sobre Networks en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by