Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: muu kieli: Matlab: USB-portin kirjaimen tunnistus

LCHawk [04.04.2014 08:48:05]

#

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.

Jackpontikka [04.04.2014 10:03:25]

#

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.

LCHawk [04.04.2014 10:17:01]

#

Kiitos. Minä sorruin taas helmasyntiini ja ajattelin tuota liian monimutkaisesti.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta