您好我有矩陣問題..MATLAB - 指數超過矩陣尺寸
我有不同的行數多的.txt文件,但具有相同數量的列(1列)
e.g. s1.txt = 1234 rows
s2.txt = 1200 rows
s2.txt = 1100 rows
我想合併這三個文件。由於它有不同的行..當我把它寫入一個新文件時,我得到了這個錯誤=索引超過矩陣的尺寸。
我該如何解決這個問題? 。
您好我有矩陣問題..MATLAB - 指數超過矩陣尺寸
我有不同的行數多的.txt文件,但具有相同數量的列(1列)
e.g. s1.txt = 1234 rows
s2.txt = 1200 rows
s2.txt = 1100 rows
我想合併這三個文件。由於它有不同的行..當我把它寫入一個新文件時,我得到了這個錯誤=索引超過矩陣的尺寸。
我該如何解決這個問題? 。
你可以簡單地通過堆疊他們結合三個矩陣:假設s1
,等你在閱讀的矩陣,你可以做一個新的一個是這樣的:
snew = [s1; s2; s3];
您也可以使用[]
如果你只需要做一次,就不需要創建新的矩陣變量。
您提供的信息太少,無法準確診斷您的問題。也許你已經將文件中的數據加載到工作區中的變量中。也許s1
有1列和1234行,等等,那麼你可以連接變量爲一個列向量這樣的:
totalVector = [s1; s2; s3];
並寫入到一個save()
聲明文件。
這有幫助嗎?
讓我假設這個問題正在與另一個question連接,並且您想要按列組合這些矩陣,留下的列中包含較少數據的空值。
在這種情況下,該代碼應工作:
BaseFile ='s';
n=3;
A = cell(1,n);
for k=1:n
A{k} = dlmread([BaseFile num2str(k) '.txt']);
end
% create cell array with maximum number of rows and n number of columns
B = cell(max(cellfun(@numel,A)),n);
% convert each matrix in A to cell array and store in B
for k=1:n
B(1:numel(A{k}),k) = num2cell(A{k});
end
% save the data
xlswrite('output.txt',B)
的代碼假設你在每個文件一列,否則將無法正常工作。
您可以在寫入文件的位置包含代碼塊嗎? – Doresoom 2010-06-03 15:21:53