2011.01.15 17:13, Laimis rašė: > Pirmas įspūdis, kad Matlab'e taškas „įsiūtas“, tačiau galima išspręsti > bent jau trejopai: na taip. Numeric Format Uses C Locale MATLAB software reads the user locale for all categories except for the LC_NUMERIC category. This category controls numeric data formatting and parsing. MATLAB always sets LC_NUMERIC to the C locale. For example, some users expect a comma in a number while other users expect a decimal. The value of pi can be displayed as 3.1415 or 3,1415, depending on the format used by a locale. MATLAB always uses 3.1415, regardless of the format specified by the user locale. > 1) matlab'e: > str = sprintf('%f', x) > str = strrep(str, '.', ','); > fprintf(fout, '%s...', str, ...); vėl hardcod'inimas, tik į kitą pusę. Ir nematau MatLAB'e galimybės gauti lokalės nustatymus perdaug neprogramuojant. > 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 taškų yra. Ten pat keliauja ir failo pavadinimas. Duomenų bloko pvz: Image file: boat.tif Number of annotations: 3 Compression ratio PSNR IW-SSIM MS-SIM 25:1 30.97080640 0.95892116 0.82229477 50:1 28.08768011 0.91135464 0.73522102 100:1 25.98833437 0.83791356 0.66173827 150:1 24.75599627 0.78497023 0.61283422 200:1 24.07390819 0.74987019 0.58906882 > 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). tas kažkiek veikia (bent jau RC7), bet bevelyčiau atspausti duomenis taip, kad nereiktų jokių šamanizmų juos toliau naudojant. Kitas variantas - pasirašyti 'odswrite' ;) -- ejs