Правильный способ доступа к полю 1xn stuct

Я искал правильный способ доступа к заданному полю структуры, и поиск вручную и в Интернете не помог.

Формально пусть MyStruct будет переменной 1xn struct. Легко перечислить все элементы, хранящиеся в поле, с помощью:

MyStruct.Thisfield   
ans =
    0.7010

ans =
    0.310

ans =
    0.444

и т.п.

Теперь единственный способ, которым я нашел доступ к этому элементу, - это использовать временную переменную, например. temp={MyStruct.Thisfield}, а затем temp{1,2} и т. д. Я думаю, что это неуклюже, но не могу понять, что еще делать.

Этот:

>> MyStruct{1,1}.Thisfield 

Ссылка на содержимое ячейки из объекта массива, не являющегося ячейкой.

и это:

>> MyStruct.Thisfield{1,1} 

Ссылка на поле для нескольких элементов структуры, за которой следует больше блоков ссылок, является ошибкой.

мои неудачные попытки.

См. пример in situ в этом моем ответе https://stackoverflow.com/a/22813577/2777181


person Cape Code    schedule 12.05.2014    source источник
comment
Вы пробовали MyStruct(2).Thisfield ?   -  person Justin    schedule 12.05.2014
comment
Обратите внимание, что фигурные скобки предназначены (только) для обработки ячеек. MyStruct(1,1).Thisfield тоже сделал бы свое дело.   -  person Dennis Jaheruddin    schedule 12.05.2014


Ответы (1)


Если вы сейчас делаете:

temp={MyStruct.Thisfield}
temp{1,2} 

Вы можете заменить это, напрямую обратившись ко второму элементу структуры (как также упоминалось @Jucestain):

MyStruct(2).Thisfield

Обратите внимание, что в одномерных вызовах вам не нужно указывать все измерения. Итак, в исходном коде вы могли бы сделать

temp{2}
person Dennis Jaheruddin    schedule 12.05.2014