Matlab fórum

Úplná verzia: Načtení dat z excelu
Prezeráte si holú variantu vašeho obsahu. Pozrieť si úplnú verziu s príslušným formátováním.
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
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.
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
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
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
Referenčné URL