How can a 4 element array index pull stored string values?

4 views (last 30 days)
Hi all, I am new to MATLAB and I'm a bit stuck trying to figure out this part.
Let's say I have a 4 element vector [1x4 double] stored called "fourElementVector" (I have a function that changes these numbers a bit, situationally)
I also have a 256x1 cell "HexData" that stores a bunch of hexadecimal strings (ranging from 16bit to 128bit)
I'm trying to make the fourElementVector be the index and pull the values stored in HexData and store them as a string like:
[0B287 0B287 0B287 0B287] (just for an example. I don't want them converted)
The 4vector will always have a stored index numbers ranging from 1 - 256, and I have 256 hex codes, so it matches.
What do you think? How might I achieve this?

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 18 Jun 2021
Edited: Scott MacKenzie on 18 Jun 2021
I think this is more or less what you are after. The output is generated both as a cell array and as a string vector.
% create random 16-bit hex values (as strings)
h = '0123456789abcdef'
idx = randi([1 16], 256, 4);
hexDataChar = h(idx);
% convert to 256x1 cell array of hex values
hexData = cellstr(hexDataChar);
% four element vector of indices
idx = randi([1 256], 1, 4);
% get four hex values from cell array
result1 = hexData(idx)
result2 = string(result1)
Output:
result1 =
4×1 cell array
{'b349'}
{'9cb2'}
{'cf42'}
{'1205'}
result2 =
4×1 string array
"b349"
"9cb2"
"cf42"
"1205"

More Answers (1)

the cyclist
the cyclist on 18 Jun 2021
Can you upload examples of your variables fourElementVector and HexData, in a MAT file? This would be helpful.
But it seems from your description that
HexData{fourElementVector}
might do what you intend?

Categories

Find more on Characters and Strings in Help Center and File Exchange

Products


Release

R2019a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!