[matlab]problema con uso di function

Capissimo
salve a tutti.
dovrei aprire un file di estensione .tri con matlab. navigando su internet ho trovato un file codice che appunto rappresenta una funzione che dovrebbe leggere i suddetti file. il programma lo riporto di seguito:

 function [pnt, dhk] = loadtri(name);

% LOADTRI reads vertices and triangles from a MBFYS triangulation file
%	[pnt, tri] = loadtri(filename)
%

% Thom Oostendorp, 2010

f = fopen(name);
if (f==-1)
  fprintf('\nCannot open %s\n\n', name);
  pnt=[];
  dhk=[];
  return;
end

[npnt,nr]=fscanf(f,'%d',1);
if (nr~=1)
  fclose(f);
  f=fopen(name);
  [magic ,nr]=fread(f,8,'char');
  if (char(magic')==';;mbftri')
    fread(f,1,'char');
    hs=fread(f,1,'long');
    fread(f,1,'char');
    fread(f,1,'char');
    fread(f,1,'char');
    npnt=fread(f,1,'long');
    nc=fread(f,1,'long');
    fread(f,1,'char');
    ndhk=fread(f,1,'long');
    nv=fread(f,1,'long');
    pnt=fread(f,[nc,npnt],'double');
    dhk=fread(f,[nv,ndhk],'long');
    dhk=dhk+1;
    pnt=pnt';
    dhk=dhk';
  else
    fclose(f);
    fprintf('\n%s is of unknown binary type\n\n', name);
    pnt=[];
    dhk=[];
    return;
  end
else
  pnt  = fscanf(f, '%f', [4, npnt]);
  pnt  = pnt(2:4,:)';
  % if present, read the triangles
  if (~(feof(f)))
    [ndhk, count] = fscanf(f, '%d', 1);
    if (count ~= 0)
      dhk = fscanf(f, '%d', [4, ndhk]);
      dhk = dhk(2:4,:)';
    end
  else
    dhk = [];
  end
end
fclose(f);
return;


quindi per aprire il mio file dovrei aggiungere sotto questo codice i comandi

[pnt, dhk] = loadtri(thorax.tri);  %richiamo la funzione loadtri


dove thorax.tri è il nome del file .tri.
quando però avvio il programma mi da errore. partendo dal presupposto che il codice scaricato da internet non sia errato...c'è un errore nella mia unica linea di codice :evil: :cry:
qualcuno sa dirmi che sbaglio?

Risposte
apatriarca
Devi passargli una stringa.. Quindi mettere il nome tra apici..

Capissimo
intendi così?
[pnt, dhk] = loadtri('thorax.tri'); %richiamo la funzione loadtri

ci ho provato già. nn cambia nulla. mi da sempre lo stesso errore :D

apatriarca
Quale sarebbe l'errore? Ma dove l'hai scritto quel codice?

Capissimo
l'errore è
??? Input argument "name" is
undefined.

Error in ==> loadtri at 9
f = fopen(name);
 


la stringa l'aggiungo sotto al codice della funzione. devo aprire un altro script?

Capissimo
ho aperto un nuovo script ed è andato ;D ragionavo come C++.
grazie!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.