簡體   English   中英

MATLAB-索引超出矩陣尺寸

[英]MATLAB - Index exceeds matrix dimensions

嗨,我有矩陣問題。

我有很多.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()語句將其寫到文件中。

有幫助嗎?

讓我假設該問題與您的另一個問題有關 ,並且您希望按列組合這些矩陣,而在列中使用較少的數據保留空白值。

在這種情況下,此代碼應工作:

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)

該代碼假定每個文件中都有一列,否則將無法工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM