clear all;
create RUDE input
rlen = [0 nan 2 2 3 inf -inf 2];
rval = [3 4 -5 6 -7 8 9 -10];
run-length decoding
vec = rude(rlen,rval)
vec = -5 -5 6 6 -7 -7 -7 -10 -10
run-length encoding
[len,val] = rude(vec)
len = 2 2 3 2
val = -5 6 -7 -10
run-length decoding
vec = rude([2 3 3 2],'aBBc')
vec = aaBBBBBBcc
run-length encoding
[len,val] = rude(vec)
len = 2 6 2
val = aBc
create test structures
s.x = pi;
t.x = pi; % note <s> and <t> are equal!
u.y = pi;
create RUDE input
rlen = [nan 1 0 3 3,...
2 3 2 1 2,...
2 2 2 -inf 2];
rval = {0 'a' 'bb' 'ccc' magic(3) 1:3 (1:3).',...
pi*(1:3) 3:-1:1 1:3 s t u pi 'dddd'};
use subroutines
rs = rude;
run-length decoding
vec = rs.d(rlen,rval)
vec =
'a' 'ccc' 'ccc' 'ccc' [3x3 D] [3x3 D] [3x3 D] [1x3 D] [1x3 D] [3x1 D] [3x1 D] [3x1 D] [1x3 D] [1x3 D] [1x3 D] [1x3 D] [1x3 D] [1x1 S] [1x1 S] [1x1 S] [1x1 S] [1x1 S] [1x1 S] 'dddd' 'dddd'
run-length encoding
[len,val] = rs.e(vec);
show results
rlenin = rlen
rlenused = rlen(rlen>0)
rlenout = len
rlenin = NaN 1 0 3 3 2 3 2 1 2 2 2 2 -Inf 2
rlenused = 1 3 3 2 3 2 1 2 2 2 2 2
rlenout = 1 3 3 2 3 2 1 2 4 2 2
for i = 1:length(val)
disp(sprintf('---- value %2d [%2d x %s]',...
i,len(i),class(val{i})));
disp(val{i});
end ---- value 1 [ 1 x char] a---- value 2 [ 3 x char] ccc---- value 3 [ 3 x double] 8 1 6 3 5 7 4 9 2---- value 4 [ 2 x double] 1 2 3---- value 5 [ 3 x double] 1 2 3---- value 6 [ 2 x double] 3.1416 6.2832 9.4248---- value 7 [ 1 x double] 3 2 1---- value 8 [ 2 x double] 1 2 3---- value 9 [ 4 x struct] x: 3.1416---- value 10 [ 2 x struct] y: 3.1416---- value 11 [ 2 x char] dddd