I am new to matlab and have a sample data(shown on pic) with many values inside. I need to multiply each values with its different conversion coefficient. How can I do that?

1 view (last 30 days)
CONV_COEFF = [0.0023394775; 0.0030514578; 0.0023394775; 0.0015258789; 0.0024414063; ...
0.0006103516; 0.0006103516; 0.0024414063; 0.0006103516; 0.0006103516; ...
0.0024414063; 0.0006103516; 0.0006103516; 0.0020345052; 0.0020345052; ...
1; 1; 0.0006103516; 0.00390625; 0.00390625; 0.00390625; 0.00390625; ...
1; 1; 1; 1; 1; 1; 0.00390625; 0.00390625; 0.00390625; 0.00390625; 0.00390625; ...
0.00390625; 0.00390625; 0.00390625; 1];
So for example, the value at 1 will need to multiply by 0.0023394775, value at 2 needs to mulitply by 0.0030514578, and so for.
I need to code to read this data from serial port and with the values I need to multiply each with its respective conversion coefficient. I need to run 100 samples.
Please help. :)

Answers (1)

Sudhakar Shinde
Sudhakar Shinde on 6 Oct 2020
Edited: Sudhakar Shinde on 6 Oct 2020
You could use 'serialport' and 'read' functions to read data from serial port.
for more info:
%Example reading 16 values
s = serialport("COM3",9600,"Timeout",5);
data = read(s,16,"uint32");
%Then use dot multiplication:
data.*CONV_COEFF
  2 Comments
Wei Wei Gan
Wei Wei Gan on 6 Oct 2020
But i need to get 100 samples of that as the data inside will keep changing so do i just use loop? By the way how do u get "16,"uint32"
Wei Wei Gan
Wei Wei Gan on 6 Oct 2020
I also have a question. Why do i have missing data when I fscanf(s) the serial port? some times it reflect the values from 1-5 and sometimes 11-20.
s=serial('COM23','BaudRate',57600);
fopen(s);
fscanf(s)
fclose(s);
However, when I use the following code, it reflect all the values from 1-25 and 48.
s=serial('COM23','BaudRate',57600,'TimeOut',10,'Terminator','LF');
fopen(s);
received=fgets(s);
fscanf(s)
fclose(s);

Sign in to comment.

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!