Increment Nonce by any fixed value in loop
2 次查看(过去 30 天)
显示 更早的评论
I have the nonce value in hex. Let say:
nonce = {'00' '11' '22' '33' '44' '55'};
I need to add any fixed value 'x'(hex) to this value in loop and need to save every new value.
I was doing this like:
nonce = {'00' '11' '22' '33' '44' '55'};
for i=1:5
nonce(i) = nonce + 01;
i = i+1;
end
But I am not acheiving what I need.
1 个评论
Jan
2019-6-25
Please mention, what you expect as output. Having only not running code does not clarify, what you want to achieve.
Your code contains some bugs:
for i=1:5
nonce(i) = nonce + 01;
% Here on the left side there is a scalar cell element, and on
% the right you try to add 01 (which is the same as 1) to a
% cell vector.
i = i+1; % i is iterated by the FOR loop already
% so do not increase it manually
end
采纳的回答
Alex Mcaulley
2019-6-24
Using a loop:
nonce = {'00' '11' '22' '33' '44' '55'};
x = '01';
for i = 1:numel(nonce)
nonce{i} = dec2hex(hex2dec(nonce{i}) + hex2dec(x),2);
end
Or using cellfun:
nonce = {'00' '11' '22' '33' '44' '55'};
x = '01';
nonce = cellfun(@(y) dec2hex(hex2dec(y) + hex2dec(x),2),nonce,'uni',0);
3 个评论
Alex Mcaulley
2019-6-25
Well, then an option is:
nonce = {'00' '11' '22' '33' '44' '55'};
x = '01';
a = strcat(nonce{:});
for i = 2:6
a(i,:) = dec2hex(hex2dec(a(i-1,:)) + hex2dec(x),12);
end
nonce = mat2cell(a,ones(6,1),2*ones(6,1))
nonce =
6×6 cell array
'00' '11' '22' '33' '44' '55'
'00' '11' '22' '33' '44' '56'
'00' '11' '22' '33' '44' '57'
'00' '11' '22' '33' '44' '58'
'00' '11' '22' '33' '44' '59'
'00' '11' '22' '33' '44' '5A'
At the end of the code, each row of nonce corresponds with the value in each iteration.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!