2016-04-22 2 views
0

Ich muss Programm erstellen, das mir 5 zufällige Zahlen gibt (von 0 bis 9, Ganzzahlen). Dann muss ich im zweiten Teil am Ende dieser Zufallszahlen ein Negativ in der Reihenfolge von -1 bis -5 hinzufügen. Und dann sende sie über Bluetooth zu meinem Arduino. Ich weiß, wie man den ersten Schritt (5 Zufallszahlen) und den letzten Schritt löst (schreibe sie über Bluetooth). Aber zum Beispiel wenn ich diese Daten 6 mal gesendet habe. Es muss so aussehen (negative Zahlen sollten von Anfang an wieder gehen).Wie man negative Zahl zum Ende der Randfunktion addiert und sie in serielle Schnittstelle schickt

7 8 1 8 6 -1 
1 3 5 9 5 -2 
5 6 7 1 2 -3 
.    -4 
.    -5 
1 3 5 7 8 -1 

Programm, das ich gerade benutze. alles löschen; clc;

b = Bluetooth('HC-05', 1); 
fopen(b); 

x = round(rand(1,5)*9); 
a = num2str(x);   
    disp(x) 

    fwrite(b,a); 


    p = fscanf(b, '%s'); 
    disp(p); 

fclose(b); 
+0

Wie dies von unterscheidet [Ihre vorherige Frage] (http : //stackoverflow.com/questions/36766995/how-to-add-number-at-the-end-of-rand)? – excaza

Antwort

0

Es wird leichter sein randi() zu benutzen, um Ihre Sequenz zu erzeugen statt:

x = [randi([0 9], 1, 5) randi([-5 -1])]; %//generate 1x5 vector of random int 0 to 9, and 1x1 value of random int -5 to -1 

N Zeilen zu generieren:

x=[]; neg = 0; 
for a=1:N 
    neg = neg - 1; 
    if (neg < -5) 
     neg = -1; %//wrap around 
    end 
    x = [x; [randi([0 9], 1, 5) neg]]; %//add new row of random numbers to x 
end 
+0

Die negativen Zahlen können nicht zufällig sein, sie müssen in Ordnung sein. Wie Sie in meinem Beispiel oben sehen können. Kann ich das auch separat machen? 1 Schritt erstellen Zufallszahlen und dann in einem anderen Schritt negative Zahl hinzufügen? – Franta123456

+0

@ Franta123456 Ja, Sie können es separat machen. Auch ich habe die Antwort für die negative Nummer bearbeitet :) hoffe, es hilft – Lincoln

+0

Vielen Dank. Und weißt du wo ich die fwrite-Funktion einstellen soll? Ich lege es hinter x = [x; [randi ([0 9], 1, 5) neg]]; fwrite (b, x) und es sendet mir nur 1 Zeile nicht 5 dann Matlab show me error: Beim Schreiben ist ein Fehler aufgetreten. – Franta123456

Verwandte Themen