Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-01-2008, 13:16   #1
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[c/c++] funzioni per matrici

mi servirebbero delle funzioni per lavorare con delle matrici quadrate e che mi permettano di calcolare determinanti. matrice inversa e moltiplicazioni fra matrici...
esistono?? sapete dove posso trovarle??
grazie mille
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 13:26   #2
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Ci sono molte librerie che consentono di operare con matrici in C++, Newmat è facile da usare, compatibile con diversi compilatori e relativamente completa.

Quote:
It supports matrix types: Matrix (rectangular matrix); UpperTriangularMatrix; LowerTriangularMatrix; DiagonalMatrix; SymmetricMatrix; BandMatrix; UpperBandMatrix; LowerBandMatrix; SymmetricBandMatrix; IdentityMatrix; RowVector; ColumnVector.

Only one element type (float or double) is supported.

The library includes the operations *, +, -, *=, +=, -=, Kronecker product, Schur product, concatenation, inverse, transpose, conversion between types, submatrix, determinant, Cholesky decomposition, QR triangularisation, singular value decomposition, eigenvalues of a symmetric matrix, sorting, fast Fourier and trig. transforms, printing and an interface with Numerical Recipes in C.

It is intended for matrices in the range 10 x 10 to the maximum size your machine will accommodate in a single array. The package works for very small matrices but becomes rather inefficient.

A lazy evaluation approach to evaluating matrix expressions is used to improve efficiency and reduce use of temporary storage.

I have tested the library with Borland (Builder 5,6), Microsoft (VC++ 6,7,8), Open Watcom (1.4), Intel 9 on a PC; Gnu G++ (3.3), Sun C++ on a Sun and Gnu G++ (3.4,4,4.1) and Intel 9 C++ under Linux.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 14:18   #3
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
[edit] mhh ma funziona solo per le 10x10 al massimo?? non si puo usare per matrici piu grandi??

Ultima modifica di mamo139 : 19-01-2008 alle 14:21.
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 14:24   #4
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Clicca su questo link.

Quote:
ma funziona solo per le 10x10 al massimo?? non si puo usare per matrici piu grandi??
Che significa la frase "in the range 10 x 10 to the maximum size your machine will accommodate in a single array"?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 14:26   #5
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
Quote:
Originariamente inviato da variabilepippo Guarda i messaggi
Clicca su questo link.



Che significa la frase "in the range 10 x 10 to the maximum size your machine will accommodate in a single array"?
eheh... avevo letto veloce
grazie
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 14:50   #6
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Come ti dicevo è molto facile da usare, ho scritto un programmino di esempio:

Codice:
#include <iostream>
#include <ctime>
#include "newmat.h"

using namespace std;

void PrintMatrix(const Matrix& X);

int main(void){
	int i,j;
	Matrix A(3, 3);
	Matrix B(3, 3);
	Matrix C(3, 3);
	srand((unsigned int)time(NULL));
	// Inizializza le matrici (nota gli indici 1-based)
	for (i = 1; i <= 3; ++i)
	for (j = 1; j <= 3; ++j)
	{
		A(i,j) = rand() % 10;
		B(i,j) = rand() % 10;
	}
	Real detA = A.determinant();
	Real detB = determinant(B);
	PrintMatrix(A);
	PrintMatrix(B);
	cout << "Det A = " << detA << endl;
	cout << "Det B = " << detB << endl;
	C = A+B;
	cout << "A+B: ";
	PrintMatrix(C);
	C = A*B;
	cout << "A*B: ";
	PrintMatrix(C);
	return 0;
}

void PrintMatrix(const Matrix& X)
{
	cout << "\nMatrix type: " << X.Type().Value() << " (";
	cout << X.Nrows() << ", ";
	cout << X.Ncols() << ")\n\n";
	if (X.IsZero()) { cout << "All elements are zero\n" << flush; return; }
	int nr=X.Nrows(); int nc=X.Ncols();
	for (int i=1; i<=nr; i++)
	{
		for (int j=1; j<=nc; j++)  cout << X(i,j) << "\t";
		cout << "\n";
	}
	cout << flush;
}
questo è l'output:

Codice:
Matrix type: Rect  (3, 3)

7       1       7
4       3       2
4       6       1

Matrix type: Rect  (3, 3)

4       7       6
2       0       6
3       0       0
Det A = 25
Det B = 126
A+B:
Matrix type: Rect  (3, 3)

11      8       13
6       3       8
7       6       1
A*B:
Matrix type: Rect  (3, 3)

51      49      48
28      28      42
31      28      60
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2008, 14:56   #7
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
grazie mille, ora provo a fare quello che volevo e se ho problemi faccio vedere...
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 15:09   #8
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
ma questa libreria consente anche di fare operazioni matriciali e matrice vettore come le moltiplicazioni?
La libreria è ben documentata...
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 17:17   #9
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Quote:
è una domanda, non c'è bisogno di mettere ste faccine.
E quali faccine dovrei mettere se non queste? Hai formulato una domanda che trova una risposta ampia, esauriente e completa nella documentazione ufficiale... Non parliamo di un segreto di stato o di funzionalità non documentate, basta un pizzico di buona volontà nel leggere la documentazione, o no?
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 17:52   #10
variabilepippo
Senior Member
 
L'Avatar di variabilepippo
 
Iscritto dal: Mar 2007
Messaggi: 1792
Non vedo perché continui a lamentarti, ti ho risposto con una indicazione precisa: per verificare se la libreria soddisfa o meno le tue specifiche esigenze devi studiare la documentazione. Anche perché non hai precisato quali "operazioni matriciali" ti servono, bastano le classiche somme/prodotti/calcolo del determinante o hai bisogno del prodotto di Kronecker e della diagonalizzazione di Jordan?

Se entri da un panettiere chiedendo della carne è normale che il panettiere ti indirizzi verso il macellaio più vicino, o ti sembra una cosa tanto strana? Volendo potrebbe darti quella che ha nel frigo, ma di sicuro dal macellaio troverai tutta la carne che desideri.
variabilepippo è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2008, 19:57   #11
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
Dai su...non andiamo oltre
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 30-04-2008, 19:29   #12
Corgan_
Junior Member
 
Iscritto dal: Apr 2008
Messaggi: 1
Librerie per matrici "avanzate"

Salve ragazzi,
sto lavorando ad un'applicazione che riguarda il face recognition in C++ in ambiente windows ed al punto in cui mi trovo sono obbligato a lavorare con le matrici.
Inizialmente mi sono dato da fare con le librerie che voi stessi avete consigliato, purtroppo però devo effettuare una particolare operazione che non è prevista.
L'operazione in questione è il calcolo degli autovettori a partire da una matrice. Nelle newmatt l'unico caso previsto è quello di matrici simmetriche, in realtà il calcolo di cui io mi devo occupare riguarda una matrice quadrata generica. Sapreste dirmi se esiste qualche libreria che prevede questo tipo di operazione ? Ringrazio anticipatamente chiunque volesse aiutarmi...ci sto sbattendo la testa già da un bel po'...

Ultima modifica di Corgan_ : 30-04-2008 alle 19:32.
Corgan_ è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2010, 18:47   #13
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
salve a tutti ,

rimmetto in luce questo post, poiche ho un problema con il file ke consigliavate.

uso visual c++ express edition 2008

ho compilato il file seguendo le istruzioni risultato funziona il main si avvia e non mi da errori.

il problema che vorrei creare una libreria affinche la possa includere su un altro progetto.

ho seguito la guida ma vc mi dà errore : file non presente in directory...

qlc1 puo aiutarmi
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
Old 28-01-2010, 21:43   #14
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
che operazioni devi implementare??
perchè se ti limiti a quelle piu elementari io ho scritto una piccola classe in c++ per gestirle.
la trovi qui: http://mamo139.altervista.org/index....classi&id=2000
se hai pretese in piu invece non so aiutarti, perchè non mi sono piu interessato all'argomento
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 10:18   #15
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
ok vanno bene....il problema che mi dà errore

c:matrici.cpp(31) : warning C4101: 'y': variabile locale senza riferimenti

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(103) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> c:\programmi\microsoft visual studio 9.0\vc\include\stdio.h(237): vedere la dichiarazione di 'fopen'

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(157) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

1> c:\programmi\microsoft visual studio 9.0\vc\include\stdio.h(237): vedere la dichiarazione di 'fopen'
1>c:\documents and settings\****\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(173) : warning C4101: 'y': variabile locale senza riferimenti

1>c:\documents and settings\***\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(369) : error C2668: 'pow': chiamata ambigua a funzione in overload

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(575): potrebbe essere 'long double pow(long double,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(527): o 'float pow(float,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(489): o 'double pow(double,int)'

1> durante la ricerca di corrispondenza con l'elenco di argomenti '(int, long)'

1>c:\documents and settings\****\documenti\visual studio 2008\projects\ekflocal\ekflocal\matrici.cpp(393) : error C2668: 'pow': chiamata ambigua a funzione in overload

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(575): potrebbe essere 'long double pow(long double,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(527): o 'float pow(float,int)'

1> c:\programmi\microsoft visual studio 9.0\vc\include\math.h(489): o 'double pow(double,int)'

1> durante la ricerca di corrispondenza con l'elenco di argomenti '(int, long)'



1>EKFLocal - 2 errore/i, 4 avviso/i
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 10:24   #16
mamo139
Senior Member
 
L'Avatar di mamo139
 
Iscritto dal: Sep 2006
Città: Bologna/Milano
Messaggi: 525
colpa mia, non ho aggiornato il sito, quella versione si compila solo con dev-c++...

ora l'ho aggiornata, ho messo quella che si compila anche con vc++

la trovi sempre allo stesso link, ho sostituito i sorgenti!!
__________________
http://mamo139.altervista.org
mamo139 è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2010, 10:46   #17
gabriWWW
Junior Member
 
Iscritto dal: Dec 2006
Messaggi: 18
Quote:
Originariamente inviato da mamo139 Guarda i messaggi
che operazioni devi implementare??
perchè se ti limiti a quelle piu elementari io ho scritto una piccola classe in c++ per gestirle.
la trovi qui: http://mamo139.altervista.org/index....classi&id=2000
se hai pretese in piu invece non so aiutarti, perchè non mi sono piu interessato all'argomento
ok funziona!!!!!


grazie
gabriWWW è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Nuovo look per la finestra Esegui su Win...
Rad Power Bikes è in bancarotta: ...
Cronos: The New Dawn diventa più ...
Riot Games alza lasticella dell'anti-che...
Netflix dice addio a 111 titoli original...
Samsung prepara un foldable più l...
Nintendo Switch 2: in arrivo cartucce pi...
Evento storico: la prima squadra di robo...
Fallito il lancio del razzo spaziale nip...
Truffa RAM: moduli DDR4 spacciati per DD...
Bureau 1440 mostra un'immagine di un sat...
Revocati i premi a Clair Obscur: Expedit...
Robotaxi Tracker, un 19enne ha scoperto ...
Il razzo spaziale riutilizzabile cinese ...
Apple Watch SE 3 in offerta su Amazon: i...
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: 15:15.


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