2015-01-15 2 views
-2

У меня есть вопрос, если у нас есть структура с 3 измерениями, и каждое поле из них имеет 7 значений, как можно извлечь каждое значение из каждого поля этой структуры отдельно.извлекать значения из структуры в matlab

+0

Не могли бы вы объяснить немного больше о структуре с 3 измерениями? Вы имеете в виду, что у структуры есть 3 поля? Было бы неплохо, если бы вы использовали пример кода для создания структуры, на которую вы ссылаетесь. – User1551892

+0

Нет моей структуры (3 * 3 * 3) с полями бит. поэтому моя структура имеет 27 полей. в каждом поле у ​​меня 7 значений. Я хочу извлечь эти значения отдельно от этих полей. – user3760558

+1

Почему бы вам не привести пример конструкции? Ссылка на файл мата или что-то еще. –

ответ

2

Просто использовать индексацию:

>> s(1,1,1).data = [1 2 3 4]; 
>> s(1,1,2).data = [10 20 30 40 50]; %// example struct 
>> s(1,1,2).data(3) 
ans = 
    30 
>> s(1,1,2).data(2:4) 
ans = 
    20 30 40 

Кроме того, это лучше не использовать struct в качестве имени переменной, поскольку struct является встроенной функцией.

+1

Однако, если вы попытаетесь выполнить 's (1,1, :). data (1)', вы получите сообщение об ошибке (по крайней мере, я делаю в октаве). Насколько я понимаю, именно этого хочет OP, особенно в свете его предыдущего вопроса по той же теме: http://stackoverflow.com/questions/27961332/summation-values-in-structure-in -matlab. – am304

+0

Чем ты Луис, но я хочу другую вещь. Я нашел это: 'для i = 1: 3 для j = 1: 3 для l = 1: 2 B = [стойка (i, j, l) .data]; конец конец. – user3760558

+0

@ am304 Я вижу. Все это было бы намного проще с использованием ND-массива вместо структуры –

Смежные вопросы