2016-03-18 1 views
0

Я пытаюсь сохранить массив в переменной внутри цикла for в файл каждый раз, когда он петли. Также я хочу использовать эти файлы позже в другом цикле. Я попытался использовать save и load. Однако он не работает. Вот что я пробовал:Сохранение массива в имя переменной и извлечение в Octave

for i=1:5 
c=a(a(:,2)==i,:) 
filename=sprintf('File_%d.mat',i); 
save('-mat',filename,'i'); 
clear c; 
endfor 

Файлы для каждого цикла создаются, но не могут читать эти файлы. Тогда я попытался загрузить эти файлы по одному в другой цикл, как показано ниже

for i=1:5 
filename=sprintf('File_%d.mat',i); 
load ('-mat',filename, 'i'); 
end for 

я не могу загрузить файлы обратно в петлю. У кого-нибудь есть предложения?

ответ

0

Что не работает? Вы просто пишете «.. но не можете прочитать эти файлы» и «я не могу загрузить». Поэтому, пожалуйста, создайте полный пример и/или опишите, в чем проблема.

Вот мое предположение, что может быть ваша проблема:

В первом цикле вы пишете я со значением 1 в файле File_1.mat, то я со значением 2 в File_2.mat и так далее, но я думаю, что вы действительно хотите, чтобы записать в файл что-то вычисляется из я, например

for i=1:5 
c=a(a(:,2)==i,:) 
filename=sprintf('File_%d.mat',i); 
save('-mat',filename,'c'); 
clear c; 
endfor 

, а затем

for i=1:5 
filename=sprintf('File_%d.mat',i); 
load ('-mat',filename, 'c'); 
c 
endfor 

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

+0

Спасибо Andy за ваши предложения. Я сохранил i вместо c, что вызвало ошибку. Как вы сказали, мы можем хранить несколько переменных в файле. Но моя цель здесь - создать несколько файлов. – ushik

+0

@ushik: По какой-то причине вы не приняли это как ответ? – Andy

+0

Я поблагодарил вас за предложение ur. Разве это не значит, что я использую предложение ура. Я новый пользователь здесь. Пожалуйста, скажите мне, что еще мне нужно сделать. – ushik