PDA

Prikaži potpunu verziju : Rad sa recima i slovima u Matlabu...


Skiljk
2.4.2012, 18:49
Da li postoji mogucnost u Matlabu da se umesto nomerickih vrednosti koriste slova...?
Tacnije, interesuje me da li se mogu uneti rec, recimo "kraustrofobija" a on da mi tu rec pretvori u niz tipa [k, l, a, u, s, t, r, o, f, o, b, i, j, a,]
da bi posle mogao nad njom da vrsim razne analize... Recimo da mi kao rezultat izbaci slovo koje se najvise ponavlja u reci ili da mi sva slova u reci poredja po nekom redosledu (od A do Z)...
Znaci, nije mi bitan smisao reci vec samo slova koja su upotrebljena...

Konkretno ono sto me interesuje je kako rec da pretvorim u niz slova, i da li je to uopste moguce u Matlabu...? Dalje pisanje koda i logicka resenja znam...

Reci bi bilo pozeljno unositi iz .txt fajla, recimo kao u kodu ispod...
fid=fopen('matP.txt');
P1=fscanf(fid,'%f',[:,1])';
fclose(fid);...


Hvala...

Belphegor
2.4.2012, 20:01
http://4.bp.blogspot.com/-zqa38HrW49o/TzyifVNfICI/AAAAAAAAIRY/YuyH67rN7ZQ/s1600/fail.jpg
Jezik je C jel?

fcanf guta space-ove i new line karaktere, jesi li siguran da to hoces?

Moze ovako:

FILE* f = fopen("text.txt", "r");
if(0 != f)
{
fseek(f, 0, SEEK_END);
int sz = ftell(f);
rewind(f);
char* buffer = (char*)malloc(sizeof(char) * (sz + 1));
int bytesRead = fread(buffer, sizeof(char), sz, f);
fclose(f);
buffer[sz] = '\0';
...
for(int i = 0; i < sz; ++i)
buffer[i]
...
free(buffer);
fscanf

fscanf(f, "%s", buffer);


:facepalm:facepalm:facepalm:facepalm...N:facepalm

M.Silenus
2.4.2012, 21:46
Reči u Matlab-u već jesu nizovi slova. Možeš da radiš sa njima sve što i sa običnim nizovima (tj. matricama).

Na primer:


>> [ 'abcde' ; 'edcba' ]
ans =
'abcde'
'edcba'
>> class(ans)
char


Imaj u vidu da ako izvršiš neku aritmetičku operaciju nad ovakvim nizom, vrši se konverzija u matricu brojeva:


>> [ 'abcde' ; 'edcba' ]
ans =
'abcde'
'edcba'
>> ans + 1
106 119 98 111
111 98 119 106


Matricu brojeva možeš da pretvoriš u matricu karaktera na sledeći način:


>> char([111 98 119 106])
ans = 'obwj'