How can I modify the following code to send data row by row instead of column by column using UDP?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Voss
2024-3-3
编辑:Voss
2024-3-3
"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 个评论
Voss
2024-3-4
To wait for 1 second, you can use
t = tic;
while toc(t) < 1
% do nothing, just wait
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!