0
我使用的是從多個文件導入數據,並將它們保存到單元陣列的代碼,代碼如下:如何使用循環創建的數組? Matlab的
[FileName,PathName,FilterIndex] = uigetfile('*.txt*','MultiSelect','on');
numfiles = size(FileName,2);
FileData= cell(1,numfiles);
for ii = 1:numfiles
FileName{ii};
A=[];
entirefile =fullfile(PathName,FileName{ii});
fid = fopen(entirefile);
tline = fgets(fid);
while ischar(tline)
parts = textscan(tline, '%f;');
if numel(parts{1}) > 0
A = [ A ; parts{:}' ];
end
tline = fgets(fid);
end
fclose(fid);
FileData{ii} = A;
A = FileData{ii};
X = A(:,1);
Y = A(:,5);
DataToUse = [X,Y];
end
現在我的問題是我想使用由創建的第一個DataToUse
循環,這將是從第一個文件,第一個數據到其他文件的數據,但我不能分開它。我試過DataToUse(1)
,DataToUse(1,1)
和DataToUse(:,[1,2])
,但沒有一個適合我。數據類型的一個例子是:
DataToUse =
0.0762 0.0271
0.0763 0.2671
0.0764 0.4079
0.0765 0.0510
0.0766 0.0087
0.0767 0.0099
0.0768 0.0067
0.0769 0.0047
0.0770 0.0047
0.0771 0.0349
0.0772 0.2094
0.0773 0.2740
0.0774 0.0294
0.0775 0.0100
0.0776 0.0159
我因有這種數據的不同數量的多少文件被選中,但我想只用前開始和稍後再使用其他人。任何人都知道我該如何去做這件事?提前感謝
謝謝!工作幾乎完美,但由於某種原因,它給了我兩次信息。任何想法如何制止這一點? – user3580436
它實際上爲我提供的數據數量與上載和導入數據所用的文件數量相同。也許與'DataToUse {ii}'有關? – user3580436
你是否一般對編程新手?如果你是新手,那我完全沒問題,我只是問,因爲如果你是新手,我想要更加精確。瞭解for循環的工作原理非常重要:對於範圍[1,numfiles]中的每個整數,循環內的每個語句都會執行一次。因此,如果您在for循環中放置'firstLoopXY = DataToUse {1}',則它將針對每個文件執行一次,如您所述。如果你把它放在for循環底部的'end'之後,它只會執行一次。順便說一句,如果你在循環中放入了'DataToUse {ii}',它會每次顯示**這個**文件數據。 –