Minulla on siis seuraava skripti, jolla kirjoitan erinäistä dataa Matlabista USB-tikulla olevaan Exceliin.
function kirjoitus(polku, kirjoitettava) asema='G:\GRADU\Tulokset'; tayspolku=[asema polku]; [kork,lev]=size(kirjoitettava); kirjoitettava=kirjoitettava(1:40,1:lev); xlswrite(tayspolku,kirjoitettava,'Sheet1','A2'); end
Kuten huomattua, siinä on käsin määritelty tuo polku. Kuitenkin tilanne on se, että kotikoneella nuo koneen etupaneelissa olevat USB-portit ovat kirjaimeltaan G ja yliopiston koneilla E. Joudun siis vaihtelemaan tuota kirjainta yhtenään. Onko mitään tapaa tunnistaa automaattisesti Matlabilla, mihin porttiin (siis portin kirjain) USB-tikku on kytketty?
Lisäys: Tarkennetaan vielä, että polku on se Excel-taulukon nimi, johon kirjoitetaan ja kirjoitettava on matriisi, joka Exceliin kirjoitetaan.
Jos tiedät varmasti, että vaihtoehdot ovat vain G tai E, yhtenä ratkaisuna voisi olla tarkistaa, onko G:\GRADU\Tulokset tai E:\GRADU\Tulokset olemassa lainkaan. Tämä onnistunee funktiolla
exist
.
Tällöin voisit tehdä esimerkiksi näin
if exist('G:\GRADU\Tulokset') asema = 'G:\GRADU\Tulokset'; else asema = 'E:\GRADU\Tulokset'; end
Koodi ei tietysti takaa, että tuo jälkimmäinen asema löytyy. Tätä varten voit (ja kannattaa) itse tehdä virheen tarkistuksen. Lisäksi tuo sopivan aseman etsiminen ja määrittäminen kannattaa tehdä ennen varsinaisen laskennan alkamista. Voit esimerkiksi asettaa suorituksen loppumaan, jos E tai G asemaa ei löydy. Tällöin et hukkaa mahdollisesti tuntien pituista laskenta-aikaa vain huomataksesi, että ohjelma kaatuu, koska tallennus myöhemmässä vaiheessa ei onnistu.
Kiitos. Minä sorruin taas helmasyntiini ja ajattelin tuota liian monimutkaisesti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.