Getting one field data using other field in struct
Mostra commenti meno recenti
Hello, I have a structure

I want to get the data of 2nd field but not using app.temp.Channel(2).data
I want to use the name field instead.
something like
mydata = app.temp.Channel.data(app.temp.Channel.name == 'U1');
but I have error (Error using == ; Too many input arguments).
May I know some suggestions, How to do this in a simple manner without using complex for loops.
11 Commenti
John D'Errico
il 13 Feb 2020
You posted the same question 3 times. I'll close two of them.
Temu Gautama
il 13 Feb 2020
Does this work?
app.temp.Channel.('U1')
Timon Rayis
il 13 Feb 2020
Timon Rayis
il 13 Feb 2020
Temu Gautama
il 13 Feb 2020
Ah, sorry, misinterpreted the table. Then it should be something like this:
mydata = app.temp.Channel.data( cellfun(@( x )strcmp( x, 'U1' ), {app.temp.Channel(:).name} ));
Timon Rayis
il 13 Feb 2020
Modificato: Timon Rayis
il 13 Feb 2020
Temu Gautama
il 13 Feb 2020
Hmm let's see
{app.temp.Channel(:).name}
should give you
ans =
'U1' 'U2' 'U3'
So if you do the cellfun-strcmp
cellfun(@( x )strcmp( x, 'U1' ), {app.temp.Channel(:).name} )
it should yield
ans =
1 0 0
which is then used for (logical) indexing. So I don't really see where the error is coming from. Could you try these lines separately?
Timon Rayis
il 13 Feb 2020
Timon Rayis
il 13 Feb 2020
Modificato: Timon Rayis
il 13 Feb 2020
Timon Rayis
il 13 Feb 2020
Timon Rayis
il 13 Feb 2020
Risposte (0)
Categorie
Scopri di più su Structures in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!