2016-04-08 2 views
0

Я пытаюсь найти все возможные решения для своей проблемы. Начиная с случая А до случая Е, я породил все решения и создал из них структуру.Переменные вызова из структуры, сгенерированной в matlab

Solutions= [] [] [] [] [21x10 struct] 

Это означает, что

CASE A 0 solution, 
CASE B 0 solution, 
CASE C 0 solution, 
CASE D 0 solution, 
CASE E 21 solution. 

Я хочу назвать все эти 21 решения (которые 1x10 матрица), чтобы использовать мои следующие расчеты. Например;

CASE E= SOL1, SOL2, ...... SOL21 

И я хочу использовать SOL10 и я сделать некоторые расчеты с ним

Как можно назвать все эти 21 решения, чтобы использовать его для другого расчета?

+2

Не могли бы вы опубликовать свой код, который может быть использован для воспроизведения вашего проблема? Как вы пытались до сих пор использовать решения? –

ответ

0

Предположим, что мы имеем:

for ii=1:21 
    SolE(ii).solution=rand(1,10); 
end 
Solutions={[],[],[],[],[SolE]}; 
clearvars -except Solutions 

Solutions является массив клеток, где каждый элемент представляет собой данный случай.
Каждый CASE (Solutions{ii}) является struct array, где каждый элемент содержит РЕШЕНИЕ.
Каждый РЕШЕНИЕ: struct с одним элементом - массив 1x10.

Если вы хотите получить доступ все решения вы можете сделать это с помощью

{Solutions{case_ID}(:).solution}' 

Если вы хотите получить доступ одно решение:

Solutions{case_ID}(sol_ID).solution