2016-04-22 17 views
0

私に5つの乱数(0から9までの整数)を与えるプログラムを作成する必要があります。次に、2番目の部分では、乱数の最後に-1から-5の順に負を追加しなければなりません。そして、ブルートゥースを介して私のarduinoにそれらを送信します。私は最初のステップ(5つの乱数)を解決する方法を知っています。最後に(ブルートゥースで書き込む)。しかし、例えば、私はこれらのデータを6回送信した。このようにする必要があります(負の数は最初からやり直す必要があります)。rand関数の最後に負の数を加えてシリアルポートに送る方法

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 

今使っているプログラム。 すべてをクリアします。 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

[あなたの前の質問](HTTP ://stackoverflow.com/questions/36766995/how-to-add-number-at-the-end-of-rand)? – excaza

答えて

0

代わりにあなたのシーケンスを生成するrandi()を使用する方が簡単になります。

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行を生成するには:これは異なるどのよう

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

負の数は、順番に並べる必要があります。あなたは上の私の例で見ることができます。また、私はそれをseparetlyできますか? 1ステップ乱数を作成し、別のステップで負の数を追加? – Franta123456

+0

@ Franta123456はい、あなたは別にそれを行うことができます。また、私は負の数の答えを編集しました:)それが助けてくれるといいですか? – Lincoln

+0

ありがとうございました。そして、私はfwrite関数をどこに置くべきか知っていますか?私はx = [x; [randi([0 9]、1,5)neg]]; fwrite(b、x)とそれは私に1行だけではない5を送信するmatlab表示エラー:書き込み中にエラーが発生しました。 – Franta123456

関連する問題