Index exceeds matrix dimensions for fprinf
1 view (last 30 days)
Show older comments
Hi there,
I kept getting this message below. I would appreciate it if you could help me out.
Here is the the code I ran below
formatSpec = '%s\t %.15f\t %.15f\t %.15f\n';
fid = fopen('sineBurstAnalysis.txt','w');
fprintf (fid, '%s\t %s\t %s\t %s\n',...
'FileName','CVburstDuration','CVburstTP','CVburstAMP');
for r = 1:8
fprintf(fid,formatSpec,ddd(1,r).name, cvDuration_1(1,r), cvTTP_1(1,r), cvAMP_1(1,r));
end
fclose(fid);
Here is the error message I got below.
Index exceeds matrix dimensions.
Error in sineBurstAnalysis_test1 (line 160)
fprintf(fid,formatSpec,cvDuration_1(1,r), cvDuration_1(1,r), cvTTP_1(1,r),
cvAMP_1(1,r));
Thank you for your help!
0 Comments
Accepted Answer
Jan
on 19 Feb 2018
Edited: Jan
on 19 Feb 2018
Use the debugger to check the cause of the error: https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html . Set a breakpoint in the failing line, or even better let Matlab stop automatically at the error:
dbstop if error
Now run the code again until it stops. The error message is clear: one of the used variables does not have as many elements as requested:
size(ddd)
size(cvDuration_1)
size(cvTTP_1)
size(cvAMP_1)
The forum cannot suggest a way to fix the problem, because we cannot know, how these variables have been created. But the debugger will help you here also.
0 Comments
More Answers (2)
Star Strider
on 19 Feb 2018
If your data are column vectors rather than row vectors, you will get that error:
x = rand(5,1); % Column Vector
q = x(1,3);
Index exceeds matrix dimensions.
Error in ... (line ###)
q = x(1,3);
The solution for that is to only use one index to refer to elements of a vector, rather than two.
0 Comments
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!