2016-05-13 17 views
1

変数から直接1×250行列に値を追加できないという問題があります。これがコードです。matlabの1つの変数から行列に値を加算する

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); 

値(n)= adcは機能していないようで、私の周りで働く方法はわかりません。

+0

どのエラーが発生しますか?変数adcはどの値を保持していますか? – drorco

+0

adc(5)にアクセスしようとしました。 numel(adc)= 4であるため、インデックスが範囲外になります。 sensorTest(11行目)のエラー 値(n)= adc(n); – mackesacke

答えて

0

values(n)は単一の要素であり、fscanf(s1)の出力はいくつかの要素で構成されているため、これは機能しません。

多分細胞を使いたいですか?

values{n} = adc; 

代替事前配分:n = cell(1,N);n = zeros(1, N)

コードの後半でいくつかの変更を行う必要があることに注意してください。私はあなたにそれを任せます。

+0

私はこれをテストします、素早い答えのためにありがとう – mackesacke

+0

ありがとう!これは働いた – mackesacke

関連する問題