필터 지우기
필터 지우기

When i execute function my matlab is being struck; is there any wrong with this simple code???

조회 수: 1 (최근 30일)
In the following arr is a array(1-d) in which each row has three columns of
x-co-ordinate , y-co-ordinate and intensity values ;
m*n is the required size of output image ie fgt here.
In the code initially i have simply assigned all values to 65539(which is not in range of uint16)
function [fgt]= reconstruct ( arr,m,n)
fgt=zeros(m,n);
fgt(:,:)=65539; %
l=size(arr,2)-2;
for i=1:l
fgt(arr(i),arr(i+1))=arr(i+2);
i=i+3;
end
for i=1:m
for j=1:n
if(fgt(i,j)==65539)
fgt(i,j)=0;
end
end
end

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 9일
If arr is a real array, then there will be a problem with fgt(arr(i),arr(i+1))
  댓글 수: 7
Azzi Abdelmalek
Azzi Abdelmalek 2013년 1월 9일
I tested your code, there is no problem,
arr=randi(10,8,3)
m=8,n=3;
fgt=zeros(m,n);
fgt(:,:)=65539; %
l=size(arr,2)-2;
for i=1:l
fgt(arr(i),arr(i+1))=arr(i+2);
i=i+3;
end
for i=1:m
for j=1:n
if(fgt(i,j)==65539)
fgt(i,j)=0;
end
end
end
nayana
nayana 2013년 1월 9일
Thank you for your immediate response, maybe there's something wrong with my mat lab software.I will re install and see

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

추가 답변 (1개)

Walter Roberson
Walter Roberson 2013년 1월 9일
Please do not use "l" as a variable name: it is too easy to confuse it with "1".
You have
for i=1:l
i=i+3
end
changing a loop variable inside of the "for" loop has an effect only until the beginning of the next loop iteration. If you want to increment by 3's, then use
for i = 1 : 3 : l

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by