How to extract a certain row from a struct based on a specific column name?

30 visualizzazioni (ultimi 30 giorni)
Hello!
I want to get the row with the DisplayName 'vfzg_w' based on the name, not the number of the field!
After that I want to work with the field Data of this specific row, is that possible?
Thanks for your advice!

Risposta accettata

源樹 上林
源樹 上林 il 13 Ago 2020
たぶんこう
data(data.DisplayName == 'vfzg_w', :)
  2 Commenti
Maytheewat
Maytheewat il 27 Dic 2024
This gives the following error
Error using ==
Too many input arguments.
Do you have any tips?
DGM
DGM il 27 Dic 2024
You don't have a scalar struct, so the LHS of the test is a CSL. You shouldn't be testing chars using == anyway. Use strcmp() or something.
% say i have a nonscalar struct
inpict = imread('cameraman.tif');
mask = inpict == 220;
S = regionprops(mask,'area')
S = 12x1 struct array with fields:
Area
% the only field is _numeric_ and _integer-valued_,
% so == makes sense here. it doesn't for char, or float.
% without the concatenation [], the LHS of this comparison
% is a comma-separated list -- i.e. multiple arguments
S2 = S([S.Area] == 2)
S2 = 2x1 struct array with fields:
Area

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by