Bonjour
J'ai un tableau à 2 dimensions et je voudrais affecter les éléments de la première ligne à un autre tableau à 1 dimension et ceux de la deuxième ligne à un autre tableau encore à 1 dimension.
Merci
Bonjour
J'ai un tableau à 2 dimensions et je voudrais affecter les éléments de la première ligne à un autre tableau à 1 dimension et ceux de la deuxième ligne à un autre tableau encore à 1 dimension.
Merci
dans ce cas, moi je créerais un tableau de tableaux....
c-à-d un tableau qui contient tes tableaux à 1 dimension... après tu n'as qu'à parcourir et ajouter les elements....
Salut
En fait je n'ai aucun contrôle sur le premier tableau à 2 dimensions. Ce n'est pas moi qui le crée et le gère. Faut que je me débrouille avec ça pour récupérer les valeurs de chacune des lignes.
t'as pas besoin d'avoir un controle sur le tableau à 2 dimensions.. tu dois juste pouvoir le lire...
Oui enfin je parle pas de le modifier ou quoi que ce soit. Je veux juste récupérer ses éléments pour les affecter 2 nouveaux tableaux à 1 dimension chacun. Et je ne sais pas comment faire ça
il vient d'ou ton tableau?
c'est quel type?
un bout de code??
si tu arrives à lire ton tableau, tu peux le manipuler comme tu veux après..
on déclare (c'est waveforms le tableau)
Ici on lui affecte ses valeurs. ce sont les echantillons de 2 signaux,"0,1"(voie 0 et voie 1). 1000 echantillons pour chaque signaux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Dim recordLength As Integer = CInt(1000) Dim Waveforms() As Double
J'ai une doc mais je pige pas entièrement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 my_niScope.Read("0,1", 1, 1000, Waveforms, Waveform_Info) 'read from Digitizer
Returns an array whose length is the numSamples times number of waveforms. Call niScope_ActualNumWfms to determine the number of waveforms.
NI-SCOPE returns this data sequentially, so all record 0 waveforms are first. For example, with a channel list of 0,1, you would have the following index values:
index 0 = record 0, channel 0
index x = record 0, channel 1
index 2x = record 1, channel 0
index 3x = record 1, channel 1
Where x = the record length (qui vaut 1000 ici)
le methode read retourne un tableau à 2 dymensions si je comprends bien...
mais ils sont de quel type???
C'est bien ça, de type double
J'ai oublié un petit detail, avant la methode read
Ce dont j'ai besoin c'est ça en fait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ReDim waveforms(recordLength)
index 0 = record 0, channel 0
index x = record 0, channel 1
Ensuite j'affiche les echantillons de chaque signal sur 2 oscillos virtuels
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 U1.PlotY(waveforms) 'ça c'est pour une lecture sur une voie seulement
tu dois lire les 2 premier element du tableau retourné par la méthode reand?=
j'ai vraiment du mal à comprendre...
En fait quand j'utilise la methode read, il va lire le signal qui arrive sur la carte et l'echantillonner (j'ai 2 prises bnc pour brancher une tension). Pour une lecture je précise que je veux 1000 échantillons de ce signal, puis il enregistre dans le tableau (waveforms) les 1000 echantillons. Seulement si je lis 2 signaux en même temps il va transformer waveforms en un tableau à 2 dimensions. Sur la première ligne j'aurai les 1000 echantillons du signal de la voie 0 (index 0 donc) et sur la seconde ligne j'aurai les 1000 echantillons du signal de la voie 2 (index 1).
Enfin si moi aussi j'ai tout compris c'est comme ça que ça se passe
t'as qu'à faire un truc comme ça alors...
comme ça tu as deux tableaux de 1 dimension..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim recordLength As Integer = CInt(1000) Dim Waveform1() As Double Dim WareForm2() as Double dim temp() as Double ReDim waveform1(recordLength) Redim waveform2(recordlength) temp = my_niScope.Read("0,1", 1, 1000, Waveforms, Waveform_Info) 'read from Digitizer dim i as integer for i=0 to recordlength-1 waveform1(i)=temp(0,i) waveform2(i)=temp(1,i) next i
adapte la synthaxe car je ne suis vraiment pas sûr... ça fait longtemps que je n'ai plus fait de VB.
En fait c'est plutot ça
Puisque la methode read (qu'on utilise 1 seule fois) enregistre les echantillons des 2 signaux dans un seul et même tableau qui est waveforms.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim recordLength As Integer = CInt(1000) Dim Waveforms() As Double ReDim waveforms(recordLength) my_niScope.Read("0,1", 1, 1000, Waveforms, Waveform_Info) 'read from Digitizer
Je vais essayer de m'inspirer de ton idée pour mon problème. Je suis également en train de trouver des piste.
Merci du coup de main.![]()
ah excuse j'avais pa bien vu le prototype de la méthode read....
alros ce que tu dois faire c'est plutot ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Dim temp1() As Double Dim temp2() as Double redim temp1(recordlength) redim temp2(recordlength) for i=0 to recordlength-1 temp1(i)=waveforms(0,i) temp2(i)=waveforms(1,i) next i
Wahoo !!
ça y est je viens de le faire marcher. Mais la doc qu'ils fournissent je crois qu'ils peuvent se la garer ou j'pense. Leur soit disant tableau à plusieurs dimensions comme on pourrait le comprendre avec leur histoire d'index, n'a en fait qu'une dimension, saut que la premiere moitée des valeurs sont les echantillons du premier signal et la seconde moitiée celles du deuxieme signal. Il a donc fallu adapter le nombre d'échantillons à acquérir
(qu'est ce qu'on se sent c... dans ces cas la...)
Merci quand même du mal que tu t'es donné![]()
Partager