Mirko, mam problem z programem w Matlabie. Opis problemu: Mam tablice 200x200 typu bool, ale ze względu na dalsze obliczenia muszę zmienić wszystkie '0' na '-1'. Z tego powodu muszę zmienić typ danych z bool na coś innego i zmieniam ten typ na double. A zmieniam na double ze względu na fakt, że Matlab nie ogarnia mnożenia tablic będących intem:
MTIMES is not fully supported for integer classes. At least one input must be scalar. To compute elementwise TIMES, use TIMES (.*) instead.
Jednak ja muszę wykonać mnożenie tych tablic w stylu D* ((D' *D)^-1) *D', co prowadzi do powstania ogromnych tablic typu double, które zabierają masę miejsca i zacinają cały komputer. Przy rozmiarze 250x250 sięgają już rozmiarów ponad 20GB i Matlab tego nawet nie próbuje liczyć. Co robić? Da się to jakoś jednak zrobić na małych intach?
@Gumaa: Bez kodu nic nie potrafią nic więcej powiedzieć ( ͡°͜ʖ͡°) Also dlaczego double, a nie int? Obliczenia na liczbach zmiennoprzecinkowych są o wiele mniej wydajne niż na liczbach całkowitych. EDIT: W sumie to już sam nie wiem co Ty tam masz, bo najpierw piszesz double, potem int...
Bez kodu nic nie potrafią nic więcej powiedzieć ( ͡°͜ʖ͡°) Also dlaczego double, a nie int?
EDIT: W sumie to już sam nie wiem co Ty tam masz, bo najpierw piszesz double, potem int...
@Zelber: no przecież napisałem, że zmieniam tablicę na double, bo Matlab nie ogarnia mnożenia jeżeli tablica jest typu int i wywala wtedy podany błąd ( ͡°ʖ̯͡
@selenita66: nie da się, bo potem całą tablicę i tak muszę użyć w dalszych obliczeniach. Po prostu potrzebuję sposobu zmienienia typu danych z zachowaniem możliwości wykonania mnożenia macierzy. Double to straszne marnotrawstwo.
Do przyszłych Ukraińców z regionu Kurska dotarła pomoc humanitarna. Niektórzy tak jak koniasz i groover próbują pierwszy raz w życiu coś innego niż chleb i woda #ukraina #rosja
Mam tablice 200x200 typu bool, ale ze względu na dalsze obliczenia muszę zmienić wszystkie '0' na '-1'. Z tego powodu muszę zmienić typ danych z bool na coś innego i zmieniam ten typ na double.
A zmieniam na double ze względu na fakt, że Matlab nie ogarnia mnożenia tablic będących intem:
Jednak ja muszę wykonać mnożenie tych tablic w stylu D* ((D' *D)^-1) *D', co prowadzi do powstania ogromnych tablic typu double, które zabierają masę miejsca i zacinają cały komputer. Przy rozmiarze 250x250 sięgają już rozmiarów ponad 20GB i Matlab tego nawet nie próbuje liczyć.
Co robić? Da się to jakoś jednak zrobić na małych intach?
#programowanie #matlab #pytanie #pytaniedoeksperta
Obliczenia na liczbach zmiennoprzecinkowych są o wiele mniej wydajne niż na liczbach całkowitych.
EDIT: W sumie to już sam nie wiem co Ty tam masz, bo najpierw piszesz double, potem int...
@Zelber: no przecież napisałem, że zmieniam tablicę na double, bo Matlab nie ogarnia mnożenia jeżeli tablica jest typu int i wywala wtedy podany błąd ( ͡° ʖ̯ ͡
Po prostu potrzebuję sposobu zmienienia typu danych z zachowaniem możliwości wykonania mnożenia macierzy. Double to straszne marnotrawstwo.