Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-09-2007, 09:08   #1
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7378
[Matlab,C++] Tipo cella

Ciao ragazzi,
per caso sapete se esiste in C++ un tipo equivalente al tipo "cella" in Matlab?

Se non esiste, come faccio a creare una cella [1X10][10x1] in C++ ?
Sarei costretto a creare una matrice dinamica di 10X10 elementi ed usare solo quelli che mi servono? Però in tal modo sprecherei un sacco di spazio. Grazie!
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2007, 12:50   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Puoi usare i vector o crearti una classe cella ad hoc.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 29-09-2007, 19:47   #3
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7378
Quote:
Originariamente inviato da cionci Guarda i messaggi
Puoi usare i vector o crearti una classe cella ad hoc.
Ai Vector ci avevo pensato. Però ad esempio, con la cella in questione dovrei creare un vector di 10 elementi ed altri 10 da 1 elemento ciascuno ?
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 01:26   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo...perché no...

typedef celle vector<int>;

vector<celle> m;

In questo modo m è una matrice.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 08:39   #5
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7378
Quote:
Originariamente inviato da cionci Guarda i messaggi
Certo...perché no...

typedef celle vector<int>;

vector<celle> m;

In questo modo m è una matrice.
Non è un grande spreco di risorse creare dei vector con un solo elemento all'interno? Poi nel mio caso ho una matrice strana, nel senso che la prima metà è 1x10, la seconda metà è 10x2 . Il modo che mi hai consigliato tu permette di fare questo?

Più in generale poi, se in C++ devo creare dinamicamente una matrice non quadrata del tipo 100x5, devo per forza creare 100 puntatori con 5 elementi all'interno? Magari in questo caso basta invertire gli indici.

Ultima modifica di Unrue : 30-09-2007 alle 08:45.
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 09:24   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai problemi con la memoria ? Crei qualche milione di queste strutture ? Credo che pensare allo spreco di memoria sia l'ultimo dei tuoi problemi

In ogni caso se vuoi creare una struttura ottimizzata puoi pensare a creare un gestore di celle che incapsula le celle e le gestisce sotto forma di vettore lineare.

Che so...una cosa tipo questa:

Codice:
class CellManager 
{
   int *data;
   int rows;
   int columns;
public:
   CellManager(int rows, int columns);
   int & getCell(int row, int column);
   ~CellManager();
};

CellManager::CellManager(int rows, int columns)
{
   this.rows = rows > 0 ? rows : 1;
   this.column = column > 0 ? columns : 1;
   data = new int[rows * columns];
}

CellManager::~CellManager()
{
   delete[] data;
}

int & getCell(int row, int column)
{
   if(row >= rows || row < 0 || column >= columns || column < 0)
   {
      throw IndexOutOfBoundException;
   } 
   
   return data[row * columns + columns];
}
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 10:56   #7
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7378
Quote:
Originariamente inviato da cionci Guarda i messaggi
Hai problemi con la memoria ? Crei qualche milione di queste strutture ? Credo che pensare allo spreco di memoria sia l'ultimo dei tuoi problemi
No milioni no, però siccome questo programma lo devo parallelizzare, meglio non inviare strutture troppo grandi ai vari processori, altrimenti spendo un sacco di tempo per la comunicazione.

La soluzione che mi hai proposto è molto buona, però credo che alla fine userò delle semplici matrici bidimensionali, in cui i 2 indici interni della cella i-esima li mappo su un unico indice.

Siccome uso MPI, alla fine comunque dovrei copiare tutte le celle in una matrice bidimensionale per spedirle, quindi conviene usare quelle fin da subito
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 30-09-2007, 15:20   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non mi sembra un buon approccio ad oggetti...
Puoi sempre aggiungere un costruttore che crea il CellManager a partire da un vettore e dalle dimensione
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 17:48   #9
Unrue
Senior Member
 
L'Avatar di Unrue
 
Iscritto dal: Nov 2002
Messaggi: 7378
Quote:
Originariamente inviato da cionci Guarda i messaggi
Non mi sembra un buon approccio ad oggetti...
Puoi sempre aggiungere un costruttore che crea il CellManager a partire da un vettore e dalle dimensione

Forse è :
Codice:
return data[row * columns + column];
anzichè:
Codice:
return data[row * columns + columns];
?
Unrue è offline   Rispondi citando il messaggio o parte di esso
Old 04-01-2008, 18:22   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 03-09-2009, 16:27   #11
Mattiatn
Member
 
Iscritto dal: Jul 2006
Messaggi: 64
Ciao a tutti, senza aprire un'ulteriore topic, sono arrivato anche io ad una situazione di questo tipo, ovvero l'utilizzo dell'analogo delle celle in Matlab.

Ho pensato di creare una classe apposita, ma com'era prevedibile non ci ho azzeccato...

Il problema è quello per cui ho una matrice di punti (x,y)xn_Punti da inserire all'interno di una matrice che chiamo per esempio A. In teoria chiamando A[a][b] dovrei trovare la relativa matrice di punti (x,y).
Ho pensato quindi di fare una cosa del genere:

class cella2d A{
int n_Punti;
double Punti[n_Punti][2];
};

in maniera tale da richiamare la classe e costruirla come
cella2d A[a][b];

il Problema è però che in A non mi lascia definire la marice Punti con dimensioni n_Punti, quindi volevo chiederevi se fosse possibile creare una classe con al suo interno una matrice di dimensioni variabile.

Grazie a tutti, Mattia
Mattiatn è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2009, 14:17   #12
comebus
Member
 
Iscritto dal: Jul 2009
Messaggi: 107
salve, sapreste dirmi se in matlab c'è un modo per creare matrici in cui mettere 2 elementi per ogni "cella"? e come si fa? grazie
comebus è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2009, 14:29   #13
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da comebus Guarda i messaggi
salve, sapreste dirmi se in matlab c'è un modo per creare matrici in cui mettere 2 elementi per ogni "cella"? e come si fa? grazie
Chiedi in Scienza e Tecnica, nella discussione relativa ai software scientifici.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2009, 19:17   #14
comebus
Member
 
Iscritto dal: Jul 2009
Messaggi: 107
Quote:
Originariamente inviato da cionci Guarda i messaggi
Chiedi in Scienza e Tecnica, nella discussione relativa ai software scientifici.
ok grazie! mi sai dire almeno ("visti che il titolo della discussione è [Matlab,C++] tipo cella) una cosa relativa alle celle? allora, ho creato un array di celle, ognuna delle quali ha un vettore di 2 elementi!mi sai dire se esiste una funzione che permette di: immettere i 2 numeri contenuti in uno dei vettore, e che mi ritorni la posizione della cella (in cui c'è il relativo vettore)?
se è una domanda relativa alla sezione Scienza e Tecnica fammi sapere! Ciao grazie mille
comebus è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2009, 20:34   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Tutto quello su matlab lo devi chiedere lì
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 04-12-2009, 20:46   #16
comebus
Member
 
Iscritto dal: Jul 2009
Messaggi: 107
Quote:
Originariamente inviato da cionci Guarda i messaggi
Tutto quello su matlab lo devi chiedere lì
ok, grazie!
comebus è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
AMD: l'alternativa al DLSS 5 sarebbe in ...
Canon EOS R8 Mark II: sensore da 24,2 MP...
Alla Napoli Shipping Week 2026 arriva il...
Addio bollo: il Governo cancella la tass...
Speciale Logitech G: mouse PRO X SUPERLI...
Cosa pensano Altman, Amodei, Benioff e H...
Microsoft: evento il 7 ottobre dedicato ...
Scoperti 84 corpi cosmici anomali: cosa ...
Dimensity 9600 Pro contro A20 Pro, il nu...
HillMiles MileCity1 torna a 648,99€: e-b...
Enel Mobile, il debutto è sempre ...
Nuova rimodulazione per il fisso di TIM ...
iPhone 18 Pro e Pro Max, preordini sotto...
Ha craccato 26 giochi: ora Denuvo vuole ...
Xiaomi 18 Pro, il lancio è uffici...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v