Matlab код:проверка с Matlab, если объект exsting
for n = 1:length(data)
if exist('data{n}.sid')
array{n} = data{n}.sid
else
array{n} = 0
end
end
Результат:
array =
[0] [0] [0] [0] [0] [0] [0]
Но в первой и второй структуры из "данных", то "hk1" , соответственно. «hk1.sid» существует и содержит «1»!
Как я должен изменить свой код, что массив выглядит следующим образом ...
array =
[1] [1] [0] [0] [0] [0] [0]
Содержание данных:
>> data
data =
[1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct]
>> data{2}
ans =
sid: 1
hk1: [1x1 struct]
>> data{4}
ans =
pack_id: [1x1 struct]
pack_seq_ctrl: [1x1 struct]
Как вы видите, данные {2 } включает в себя «sid», но данные {4} не включают в себя «sid» ...
Конечно, см. Обновление «Содержание данных» выше. Постскриптум Я написал что-то не так: remove hk1. Но это все еще не работает. – Kevin