2016-05-13 6 views
1

Ich habe ein Problem, wo ich nicht zu meiner 1 x 250-Matrix Werte direkt aus einer Variablen hinzufügen kann. Dies ist der Code.Hinzufügen von Werten zu einer Matrix aus einer einzelnen Variablen in Matlab

COMPORT = 'COM4'; 
BAUDRATE = 115200; 
s1 = serial(COMPORT, 'baudrate', BAUDRATE); 
set(s1, 'Terminator', 10); 
fopen(s1); 
adc = 0; 
N = 250; 
values = zeros(1, N); 
for n = 1:N 
    adc = fscanf(s1); 
    values(n) = adc; 
    flushinput(s1); 
    flushoutput(s1); 
end 
x = linspace(0, 250); 
plot(x, n); 

Die Werte (n) = adc scheint nicht zu arbeiten, und ich weiß nicht, wie mein Weg zur Arbeit um ihn herum.

+0

Welchen Fehler bekommen Sie? und welchen Wert hält die Variable adc? – drorco

+0

Versuch, auf adc (5) zuzugreifen; Index außerhalb der Grenzen, weil numel (adc) = 4. Fehler in sensorTest (Zeile 11) Werte (n) = adc (n); – mackesacke

Antwort

0

Dies funktioniert nicht, da values(n) ein einzelnes Element ist und die Ausgabe von fscanf(s1) aus mehreren Elementen besteht.

Vielleicht möchten Sie Zellen verwenden?

values{n} = adc; 

Ersatz die Vorbelegung: n = zeros(1, N) mit n = cell(1,N);.

Beachten Sie, dass Sie später in Ihrem Code einige Änderungen vornehmen müssen. Das überlasse ich dir.

+0

Ich werde das testen, danke für die schnelle Antwort – mackesacke

+0

Vielen Dank! das hat funktioniert – mackesacke

Verwandte Themen