Le myfile.m programme lit un fichier txt qui contient un total de 25 noms et numéros commeMatlab trop de sorties
exemple:
John doughlas 15986
Filip DUCH 357852
etc.
Le programme les convertit en
15986 Doughlas John
357852 duch Filip
Ceci est sans fonction, avec elle, je reçois trop de sorties.
Error message:
Error using disp
Too many output arguments.
Error in red4 (line 26)
array = disp(All);
Code original ci-dessous:
function array = myfile(~)
if nargin == 0
dirr = '.';
end
answer = dir(dirr);
k=1;
while k <= length(answer)
if answer(k).isdir
answer(k)=[];
else
filename{k}=answer(k).name;
k=k+1;
end
end
chose=menu('choose file',filename);
namn = char(filename(chose));
fid = fopen(namn, 'r');
R = textscan(fid,'%s %s %s');
x=-1;
k=0;
while x <= 24
x = k + 1;
All = [R{3}{x},' ',R{1}{x},' ',R{2}{x}];
disp(All)
k = k + 1;
end
fclose(fid);
Maintenant, j'ai obtenu beaucoup de bonnes réponses de personnes et des sites comme functions, mais je ne peux pas obtenir les résultats comme ci-dessus avec la fonction.
Je l'ai essayé de les combiner et obtenu des résultats:
y = 15986 & [a,z,b] = myfile
y = 25 & myfile = x
y = numbers name1,2,3,4 and so one & myfile = fprintf(All)
y = & I used results().namn,
numbers name 1 & results().id, results().lastname
y =
numbers name 2 and so on.
Le résultat est que je veux:
y = myfile
y =
15986 Doughlas John
357852 duch Filip
mise à jour: Modifier comme Eitan T dit, mais did't obtenir le résultat comme ci-dessus.
obtenu le résultat que:
John doughlas 15986 '
'Filip DUCH 357852'
function C = myfile()
if nargin == 0
dirr = '.';
end
answer = dir(dirr);
k=1;
while k <= length(answer)
if answer(k).isdir
answer(k)=[];
else
filname{k}=answer(k).name;
k=k+1;
end
end
chose=menu('choose',filname);
name = char(filname(chose));
fid = fopen(name, 'r');
C = textscan(fid, '%s', 'delimiter', '');
C = regexprep(C{1}, '(\w+) (\w+) (\w+)', '$3 $2 $1');
fclose(fid);
"avec cela je reçois trop de sorties". Voulez-vous dire un message d'erreur? Si oui, pourriez-vous l'inclure s'il vous plaît? – Alan