Assigning strings from struct variable

4 views (last 30 days)
Hi everyone! I'm trying to assign string from a structure to a array.
If I try
array=SIGNAL(:).label;
in the command window I get all the strings, but I want to assign it to a variable. If I try with
array=SIGNAL(:).label;
or
array{:}=SIGNAL(:).label;
I just get one of the labels. If I try with...
for i=1:length(SIGNAL)
array(i,:)=SIGNAL(i).label;
end
It works, but I'm trying to do it without a for in order to save time.

Accepted Answer

Stephen23
Stephen23 on 4 May 2021
Edited: Stephen23 on 4 May 2021
Use a comma-separated list:
Depending on the data class of your data:
array = [SIGNAL.label]; % strings
array = {SIGNAL.label}; % cell array of char vectors
For example:
A(1).C = 'hello'; % char
A(1).S = "cat"; % string
A(2).C = 'world'; % char
A(2).S = "hat"; % string
S = [A.S] % string
S = 1×2 string array
"cat" "hat"
C = {A.C} % cell of char
C = 1×2 cell array
{'hello'} {'world'}

More Answers (0)

Community Treasure Hunt

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

Start Hunting!