ejs rašė:
>
> Laba,
>
> kaip sprendžiate 'decimal separator' problemytę?
>
> Išvedinėju duomenis į CSV ir juos nuskaitinėju su OpenOffice Calc'u
> grafikų braižymui. Kadangi fprintf naudoja "." trupmeninei daliai
> atskirti, o OOo Calc'as 'decimal separator' ima pagal lokalės nuostatas,
> jis ten tikisi pamatyti ",".
> Ar įmanoma paprastu būdu fprintf'ui nurodyti kaip atskirti trupmeninę dalį?
>
> Duomenis išvedinėja MatLAB R2010a, kaip jį priversti naudoti lokalės
> nuostatas, dar neradau.
> O paprasto būdo sumaitinti duomenis į OOo Calc'ą irgi nėra. Yra
> 'xlswrite', bet reikia turėti suinstaliuotą MSO.
Pirmas įspūdis, kad Matlab'e taškas „įsiūtas“, tačiau galima išspręsti
bent jau trejopai:
1) matlab'e:
str = sprintf('%f', x)
str = strrep(str, '.', ',');
fprintf(fout, '%s...', str, ...);
2) sed, awk (priklausomai nuo to ar galima tiesmukiškai keisti visus
stulpelius, t.y. ar nėra tekstinių/datos stulpelių, kuriuose galėtų būti
taškai/kableliai):
sed -i.orig -e 's/\./\,/g' file.csv
3) OO Calc importuojant CSV turbūt galima pasirinkti kalbą ir pažymėti
„detect special numbers“. Neturiu po ranka ir negaliu patikrinti, tačiau
nustatčius atitinkamą kalbą, turėtų traktuoti taškus, kaip decimal
separatorius, o po importo, lape, pagal logiką, turėtų gautis kableliai
(pagal OO/sistemos lokalės nuostatas).