Use in Matlab
Save file
file_out = fullfile(temp_data_folder(), 'example_matlab.xmat');
xout = xmat.MapStreamOut.file(file_out);
% floating-point numbers
xout.setitem('a', 3.14);
xout.setitem('b', linspace(-1, 1, 7));
xout.setitem('c', reshape(1:2*3, [2 3]));
xout.setitem('d', reshape(1:2*3*4, [2 3 4]));
xout.setitem('e', reshape(1:3^5, [3 3 3 3 3]));
% integer numbers
xout.setitem('f', randi([0 255], 2, 3, 'uint8'));
xout.setitem('g', randi([-128 127], 2, 3, 'int8'));
% complex-value numbers
xout.setitem('h', exp(1i*2*pi*3*linspace(0, 1, 32)));
xout.setitem('i', exp(1i*2*pi*[2, 3, 4].*linspace(0, 1, 32)'));
% ascii-string
xout.setitem('j', 'string value from matlab');
% name of a data-block could be any ascii-string with less than 32 length
xout.setitem('longer-name', 1);
xout.setitem('maximun_allowed_block_name_is_32', 1);
xout.setitem('name_can_contain_any_ascii:@<>[]', 2);
xout.close();
Load file
% file_in = fullfile(temp_data_folder(), 'example_matlab.xmat');
file_in = fullfile(temp_data_folder(), 'example_python.xmat');
xin = xmat.MapStreamIn.file(file_in);
xin.print()
a = xin.getitem('a')
b = xin.getitem('b')
c = xin.getitem('c')
xin.close()
TCP-server
% open tcp-server
xtcp = xmat.TCPSocket.server('::', xmat.TCPSocket.k_xport);
% receive message
xin = xtcp.recv();
msg = xin.getitem('msg')
data = xin.getitem('data')
% send own message back
xout = xmat.MapStreamOut.byte();
xout.setitem('msg', 'message from server: Matlab');
xout.setitem('data', data);
xout.close();
xtcp.send(xout);
pause(2.0)
xtcp.close();
TCP-client
% open tcp-client
xtcp = xmat.TCPSocket.client('localhost', xmat.TCPSocket.k_xport);
% send message first
xout = xmat.MapStreamOut.byte();
xout.setitem('msg', 'message from client: Matlab');
xout.setitem('data', 1:8);
xout.close();
xtcp.send(xout);
% receive message back
xin = xtcp.recv();
msg = xin.getitem('msg')
data = xin.getitem('data')
xtcp.close();