[matlab]problema con uso di function
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:
quindi per aprire il mio file dovrei aggiungere sotto questo codice i comandi
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
qualcuno sa dirmi che sbaglio?
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


qualcuno sa dirmi che sbaglio?
Risposte
Devi passargli una stringa.. Quindi mettere il nome tra apici..
intendi così?
[pnt, dhk] = loadtri('thorax.tri'); %richiamo la funzione loadtri
ci ho provato già. nn cambia nulla. mi da sempre lo stesso errore
[pnt, dhk] = loadtri('thorax.tri'); %richiamo la funzione loadtri
ci ho provato già. nn cambia nulla. mi da sempre lo stesso errore

Quale sarebbe l'errore? Ma dove l'hai scritto quel codice?
l'errore è
la stringa l'aggiungo sotto al codice della funzione. devo aprire un altro script?
??? 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?
ho aperto un nuovo script ed è andato ;D ragionavo come C++.
grazie!
grazie!