Matlab fórum
Načtení dat z excelu - Verzia pre tlač

+- Matlab fórum (http://matlab.sk)
+-- Fórum: Matlab (/forumdisplay.php?fid=4)
+--- Fórum: Programovanie / Programming (/forumdisplay.php?fid=5)
+--- Téma: Načtení dat z excelu (/showthread.php?tid=28)



Načtení dat z excelu - KeNiK - 03-06-2013 10:58

Zdravím vás,
mám v excelu naměřená data je jich cca 15000 a potřeboval bych je načíst do proměnné, ale bez hodnot typu NaN( které jsou až na konci), případně jestli nemáte radu jak v proměnné ignorovat hodnoty NaN. Z některých dat pak něco počítám a z výpočtu a z proměnné potřebuji udělat graf a ty vektory pak nejsou stejně dlouhé takže proto potřebuji nebrat NaN. Díky za rady


RE: Načtení dat z excelu - Martin Foltin - 03-06-2013 19:04

Skús dakam umiestniť vzorový súbor .xls, nech si to môžem pozrieť. Len tak na rýchlo ma napadá, že by som priamo v exceli nahradil NaN dajakým nezmyselným číslom napr. 99999. Načítal súbor a potom by som príslušné riadky už v matlabe povyhadzoval. Keďže s tým chceš pracovať zrejme ako s maticou, tak musíš mať rovnaký počet riadkov v každom stĺpci.


RE: Načtení dat z excelu - KeNiK - 03-06-2013 20:28

tady ukázka: http://www.uloz.to/xUr2YTv/ukazka-xlsx ......nn nechci to jako matici....nevím jestli se dá nějak hromadně nahrazovat v excelu, ale já bych byl nejradši pokud bych na excel nemusel vůbec sahat. Protože by bylo nejlepší naměřit, nechat to projít programem a šlus. Ale uvidíme Wink


RE: Načtení dat z excelu - KeNiK - 03-07-2013 11:26

tak jsem to nakonec vyřešil tak, že vím, že vstupní moment nepůjde určitě nad 10 takže beru hodnoty menší než 10 a vypadá to, že to funguje Smile


RE: Načtení dat z excelu - Larry - 03-18-2013 22:01

Otazka je co tie data co obsahuju NaN ? Mozno by to chcelo ich odstranit uplne z matice, co v matlabe asi nepojde moc... ale mozno ak ovladate javu tak by mohla pomoct, len neviem ako to pri takom mnozstve dat bude zo zdrojmi (pamatou), ale tak snad to zvladne Smile
Kód:
excel = xlsread('ukazka.xlsx');
pole = javaArray('java.lang.Double', length(excel), length(excel(1,:)) );
for ( i = 1:length(excel) )
    for ( j = 1:length( excel(1, :) ) )
        pole(i,j) = java.lang.Double( excel(i,j) );
    end
end

potom existuje napr. aj metoda isNan()... napr. pre pole(14562,7).isNaN() vrati 1