Ahoj,
mam ukazatel na matice U a Un. Jak si šáhnu na hodnotu matice U na pozici 3,2 a uložim jí do matice Un?
Napadlo mě
*Un[3][2]=*U[3][2];
ale nějak to nejde. Propojuji Matlab a C++, tak nevim, zda projde přes kompilátor. Ale otázka stojí takto: JE TENTO ZÁPIS SPRÁVNÝ V C++? Taky je možný, že mi chybí nějaká knihovna.
Dík
Offline
↑ Asinkan:
Tak je to pro matici 3x3
*(Un+3+ 2)
Offline

V C++ by se melo podle me napsat:
Un[2][1]=U[2][1]
(2 a 1 proto, ze v C++ se pole indexuji od 0, zalezi na tom, co myslis tou pozici 3,2)
Tak kdyztak dej vedet jestli je to to, co potrebujes (jestli to jeste potrebujes).
Offline
↑ Lumikodlak:
To co, jsi napsal funguje pro matice, ne pro ukazatele na matice.
Offline

↑ Asinkan:
Můžeš prosím ukázat, jak máš proměnné definované? Nevytváříš náhodou „matici ukazatelů“? Nevytváříš ukazatel na ukazatel na pole?
Edit: Jestli se nepletu, tak když máš třeba
int pole[2];
tak „pole“ už je ukazatel na první prvek pole. Zápis
pole[1]
a
*(pole+1)
by měl být ekvivalentní. (Za předpokladu, že si to dobře pamatuji, v C už jsem hodně dlouho nic nepsal.)
Offline

↑ Asinkan:
To se omlouvam, spatne jsem si to precetl. V tom pripade by melo fungovat tohle:
(*Un)[2][1]=(*U)[2][1]
Offline
↑ Pavel Brožek:
Já mam matice vytvořené v Matlabu a přes mexFunction je posílam do C++, tam pak vše volám pomocí toho jak píšeš *(pole+i). Vcelku už tomu rozumím. Jen pro zajímavost mi C++ zrychlilo výpočet ze 6 minut na 15 vteřin :-> Díky všem.
Offline