2015-11-18 5 views
0

У меня есть серия массивов («A», «B» и т. Д.). Моя программа предлагает пользователям выбрать 2 разных массива, а затем возвращает значения, общие для обоих.MATLAB сохраняет каждый выход контура

Я хочу иметь возможность запускать этот цикл несколько раз и сохранять вывод (ComVal) с каждой итерации. Я пробовал использовать ячейки, но это не работает; Я не знаю, связано ли это с тем, как я написал свой код.

for k=0; 
prompt_a='Select an array: '; 
str_a=input(prompt_a); 
prompt_b='Select second array: '; 
str_b=input(prompt_b); 
ComVal=intersect(str_a,str_b); 
end 

Прямо сейчас, если я изменяю k, поэтому могу запускать его несколько раз, это только сохраняет окончательную итерацию.

+1

Как написано, ваш цикл работает только один раз, для 'k = 0' и не использует его вообще в цикле. В качестве хорошего учебника ознакомьтесь с [документацией по управлению контуром] MATLAB (http://www.mathworks.com/help/matlab/matlab_prog/loop-control-statements.html). – excaza

ответ

3

Вы можете сохранить результаты в ячейке, очень похожей на сохранение ее в стандартный массив.

numIterations = 5; 
comVals = cell(1,numIterations) 
for k = 1:numIterations 
    prompt_a='Select an array: '; 
    str_a=input(prompt_a); 
    prompt_b='Select second array: '; 
    str_b=input(prompt_b); 
    comVals{k} = intersect(str_a,str_b); 
end