Question

I have created a test example to send a signal from matlab and receive the response + plot. However the signal i want to send is much longer than the one in this example. I have tried reading from a file but i cant use the printf function with a vector column. dont want to use fwrite either as only printf works. Any ideas on a solution? Thanks

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
Was it helpful?

Solution

Matlab's fprintf accepts arrays as arguments and prints each element according to your specified format:

a = [1; 2; 3; 4; 5];
fprintf(yourfile, '%d ', a);
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top