我想读取每个excel文件的E列,这些文件没有相同的尺寸,并将它们放入一个n * m维数组中。
我使用了一个名为getAllFiles
的函数来获取目录中的所有文件。我在此链接中找到了该功能:How to get all files under a specific directory in MATLAB?。
这是我的代码:
fileList = getAllFiles('C:\Users\asus\Network\econimi\S&P500\P1')
for i=1:length(fileList)
A(i,:)=xlsread(fileList{i},'E:E');
end
一旦放入第一个文件的数据,我就会看到以下错误:
??? Subscripted assignment dimension
mismatch.
答案 0 :(得分:0)
xlsread
函数的输出是矩阵或向量(取决于您的xls数据)。使用A(i,:)=xlsread(fileList{i},'E:E');
时,您要向MATLAB说明要将矩阵或向量分配给 i 行和A矩阵的所有(:)列。由于在循环的第一次迭代中不存在A矩阵,因此将根据您的赋值rvalue(xlsread
输出创建它,该输出在第一次迭代中似乎为n x 1)。
在第二次迭代中,您似乎将矩阵分配给A(i,:) Vector,这是不允许的(将Matrix放入Vector中似乎不合理)。
现在你说你的xls文件中有不同尺寸的矩阵。如果您坚持将所有这些都附加到矩阵中,则必须首先确定要对空索引执行的操作。假设您想要将3x3矩阵附加到2x2!您可以将2x2转换为3x2,然后将其附加到3x3以获得3x5矩阵。这样,您将在3x2矩阵中有两个零值。