How can I modify the following code to send data row by row instead of column by column using UDP?
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I have data with five columns. Currently, I am sending each column one at a time. For example, I send column 1 first, followed by column 2, and so on. However, I want to modify the code to send each row at a time instead of each column.
clear;clc
client_port = 10011;
client_address = '192.168.100.201';
to = [data(:,1).' ;data(:,2).' ;data(:,3).' ;data(:,4).';data(:,5).'];
u1 = udpport("IPV4","OutputDatagramSize",6610);
for j = 1:5
write(u1,(to(j,1:length(toa_arr))),"double",client_address,client_port);
end
0 comentarios
Respuestas (1)
Voss
el 3 de Mzo. de 2024
Editada: Voss
el 3 de Mzo. de 2024
"I have data with five columns"
I assume that's the variable data in your code.
You can write data by row the exact way you are currently writing to by row:
for j = 1:length(toa_arr)
write(u1,data(j,:),"double",client_address,client_port);
end
Or by reshaping data (or the part of data you want to write - the relation between length(toa_arr) and the size of data is not clear) to be a vector of elements in the correct order:
write(u1,reshape(data(1:length(toa_arr),:).',[],1),"double",client_address,client_port);
By the way, I notice that the variable pdw in the mat file you uploaded is of size 6610-by-5. I guess this is your data with five columns. Note that "OutputDatagramSize" is in bytes, and a double is 8 bytes, so you may have wanted to specify OutputDatagramSize as 6610*8 instead of 6610.
7 comentarios
Voss
el 4 de Mzo. de 2024
To wait for 1 second, you can use
t = tic;
while toc(t) < 1
% do nothing, just wait
end
Ver también
Categorías
Más información sobre Data Acquisition Toolbox Supported Hardware en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!