Error: Index exceeds matrix dimensions.

Hi, Why do I get this message "Index exceeds matrix dimensions."??. At first I thought it was because that I named a variable with function name then I used "exist checkname " function to check and it gave me 0. So I'm still confused what might be the problem!
Code:
for k= 1: length(finalx); row3= ceil(finalx(k)*(10000+diffy3)); col3= ceil(finaly(k)*(10000+diffx3)); widthless= 3; widthmore=3; valuer3(k)= sum(B3((row3-widthless):(row3+widthmore),col3)); end figure(16) plot(finaly*(10000+diffx3),finalx*(10000+diffy3-widthless),'.g',... finaly*(10000+diffx3),finalx*(10000+diffy3+widthmore),'.r')

댓글 수: 3

Image Analyst
Image Analyst 2014년 2월 20일
편집: Image Analyst 2014년 2월 20일
You need to tell us the entire error message. That means ALL THE RED TEXT. Don't snip or paraphrase. Then, whatever variables you see on that line, do a whos on:
whos finalx
whos diffy3
and so on. Then tell us what you find. One of the indexes will be more than the size of the array.
Lujain
Lujain 2014년 2월 20일
So this is the entire message I get when I run the code: "Warning: Images with a MinIsWhite grayscale interpretation and more than eight bits per sample will not be transformed into a MinIsBlack grayscale interpretation. The pixel data will be returned as-is. Index exceeds matrix dimensions." Apparently the problem is in figure 116, as I got all the other figures.
Code: A2= imread('CPOL_0.65um1200V_cropednrotated4.tiff'); F2= double(A2);
S2= (2.^(16-F2));
diffx3= 41.5; diffy3= 30; B3=(10.^(5*S2)/(2^16-0.5));
figure(16) imagesc(log(B3)); colormap(gray); axis equal; hold on;
figure(16) plot(finaly*(10000+diffx3),finalx*(10000+diffy3),'.g',diffx3,diffy3,'.r');
for k= 1: length(finalx); %remember this is a samll k. row3= ceil(finalx(k)*(10000+diffy3)); col3= ceil(finaly(k)*(10000+diffx3)); widthless= 3; widthmore=3; valuer3(k)= sum(B3((row3-widthless):(row3+widthmore),col3)); end figure(16) plot(finaly*(10000+diffx3),finalx*(10000+diffy3-widthless),'.g',... finaly*(10000+diffx3),finalx*(10000+diffy3+widthmore),'.r') for N= 1:size(Eev,2); nproton3(4,N)= (valuer3(N))/(interp1(Ecal,pslcal,Eev(N),'cubic')); end
figure(116) plot((Eev/1E6),nproton3(4,:)); xlabel('Energy(Mev)'); ylabel('number of protons'); title('number of protons VS Energy(MeV)'); text(1,40,'CP, 0.65 micron, 1200 V,PD signal=1200mV,600 #4');
Lujain
Lujain 2014년 2월 20일
Thanks for the link

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

답변 (1개)

Dishant Arora
Dishant Arora 2014년 2월 20일

1 개 추천

dbstop if error
try debugging your code using dbstop, it will tell when actually this error occurs.

댓글 수: 2

Lujain
Lujain 2014년 2월 20일
편집: Lujain 2014년 2월 20일
Thanks I read this already somewhere else and I used it, but nothing happens :/ ! can you tell me what is the syntax? or put an example.
Dishant Arora
Dishant Arora 2014년 2월 20일
편집: Dishant Arora 2014년 2월 20일
type that in your command window and then run your code.
dbstop if error
YourScriptName % or run it directly from the editorwindow
Check out for your loop variables in the workspace after that

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

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2014년 2월 20일

편집:

2014년 2월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by