Bonsoir,
j'ai eu cette erreur dans mon code MATLAB
Warning: Unsuccessful read: A timeout occurred before the Terminator was reached.
Subscripted assignment dimension mismatch.
Error in Uart (line 38)
data(:,i)=(3.3*out)./(1023*100);
Je sais que cette erreur signifie qu'il y a une erreur de dimension mais je ne trouve pas laquelle. Mon code est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 clear all; close all; data=ones(1,3749); valeur=0:0.008:29.984; s = serial('COM5'); set(s,'Parity','none'); set(s,'BaudRate',115200); set(s,'StopBits',1); set(s,'DataBits',8); set(s,'Timeout',10); fopen(s); fprintf(s,'*IDN?'); out=fscanf(s,'%f'); figure; for i=1:1:3749 out=fscanf(s,'%f'); data(:,i)=(3.3*out)./(1023*100); end hold on; plot(valeur,data,'-'); title('Nerve response'); xlabel('Time (ms)'); ylabel('Tension (V)'); set(gca,'XTick',0:2:30); fclose(s); delete(s); clear s;
Je pense que mon problème viens du fait que j'essaye de récupérer des valeurs sur le port série. Ce que je ne comprends pas c'est que le moment où ce message d'erreur apparait varie c'est à dire que ma valeur de i (donc la dernière itération réalisée) varie à chaque essai.
De plus, la dernière valeur que j'enregistre dans out n'est pas un nombre mais le caractère "[]" alors que normalement je n’envoie que des entiers. Avez vous déjà rencontré ce problème auparavant?
Merci beaucoup
Partager