2014-05-07 25 views
0

我已經創建了一個測試示例,以從matlab發送信號並接收響應+繪圖。然而我想發送的信號比這個例子中的要長很多。 我試過從文件讀取,但我不能使用printf函數與矢量列。 不想使用fwrite或者只有printf的作品。任何解決方案的想法? 感謝來自Matlab中的文件的Printf

s = serial('COM3'); 
set(s,'BaudRate', 9600); 
s.InputBufferSize = 6000; 
fopen(s); 

t = 1; 
a = 0; 
fprintf(s, '9 8 7 6 5 4 3 2 1 0') 
while(t <= 10) 
    a = fscanf(s, '%d'); 
    x(t,:) = [t a] 
    t = t + 1; 
    plot(x); 
    drawnow; 
    axis auto; 
    grid on; 
end 

回答

0

Matlab的fprintf接受數組作爲參數,並打印根據您指定的格式每個元素:

a = [1; 2; 3; 4; 5]; 
fprintf(yourfile, '%d ', a); 
+0

將與列向量這項工作?即我的輸入文件在每個數字之間有一個換行符 – user3446990

+0

您可以先將輸入數據讀入列向量(如上面代碼中的'a'),然後使用'fprintf'。我不確定你到底在做什麼。 – 3lectrologos

+0

無論如何,我得到它的工作,感謝您的幫助! – user3446990