loading excel cell in matlab

조회 수: 1 (최근 30일)
mehra
mehra 2019년 6월 18일
답변: Walter Roberson 2019년 6월 18일
Hey
I am facing the 'Index exceeds matrix dimensions' Error while using xlsread
[WL_time,dummy1,dummy2]=xlsread(WL_data(nn).name,1,'B8')
Its in a for loop and nn is the counter, I define 'WL_data' as
WL_data=dir('*.xlsx')
Index exceeds matrix dimensions.
Error in Unsteady_fm50hz_150sec (line 51)
[WL_time,dummy1,dummy2]=xlsread(WL_data(nn).name,1,'B8');
I would be glad if you help me
  댓글 수: 9
Walter Roberson
Walter Roberson 2019년 6월 18일
편집: Walter Roberson 2019년 6월 18일
Your file loaded via load(vel_data(nn).name) contains a variable named nn that is overriding the for nn loop value
You should avoid using load without an output variable:
datastruct = load(vel_data(nn).name);
Data = datastruct.Data;
mehra
mehra 2019년 6월 18일
The same error occured in
datastruct = load(vel_data(nn).name);
but this time the results show nn=16000 !!!!!

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2019년 6월 18일
vel_data=dir('*.mat');
so vel_data contains information about .mat files
WL_data=dir('*.xlsx');
so WL_data contains information about .xlsx files
N1=length(WL_data);
so N1 contains the number of WL_data which is the number of .xlsx files
for nn=1:N1;
so nn is iterating over the number of .xlsx files
load(vel_data(nn).name)
but is being used to index into the .mat files, which there might be a different number of.
You should not assume that there are equal numbers of .mat and .xlsx files, and you should not assume that they will just happen to be corresponding in order. If the name of the .xlsx should exactly match the name of the .mat then you should construct the name of the .xlsx from the .mat

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Data Import from MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by