Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

please give correction in code

Asked by Lalit Patil on 29 Nov 2012

The image and code is

http://speedy.sh/xGRcF/l.jpg

clear all;
clc;
I = imread('l.jpg');
%RGB = RGB(:,:,3);
%GRAY = rgb2gray(I);
threshold = graythresh(I);
originalImage = im2bw(I, threshold);
i = bwareaopen(originalImage,350);
imshow(i)
m = max(max(i));
[r c] = find(i == m);
fid = fopen('lalit1.txt','wt');
for j=1:length(r)
fprintf(fid,'%f %f\n',r(j),c(j));
end
fclose(fid);
data = textread('lalit1.txt');
r = unique(data);
for i=r',
      c = data(data(:,1)==i,2);
      z(i,1) = mean([min(c) max(c)]);
end

This shows error..

??? Subscripted assignment dimension mismatch.

0 Comments

Lalit Patil

Products

No products are associated with this question.

2 Answers

Answer by Andrei Bobrov on 29 Nov 2012
Edited by Andrei Bobrov on 29 Nov 2012

last 6 rows:

r = unique(data);
z = nan(numel(r),2);
for i1 = 1:numel(r)
    c = data(data(:,1)==r(i1),2);
    z(i1,:) = mean([min(c) max(c)]);
end

4 Comments

Andrei Bobrov on 29 Nov 2012

corrected

Lalit Patil on 29 Nov 2012

Yeh, now it is working, but all values of Z are Nan.. Why.?

Walter Roberson on 29 Nov 2012

That would happen if r was empty.

textread() is obsolete. Please recode using textscan().

Andrei Bobrov
Answer by Walter Roberson on 29 Nov 2012

Where does it show that error?

If it is the z assignment in the for loop, then put a breakpoint in at the assignment and show us size(c), and size(mean([min(c) max(c)]))

3 Comments

Lalit Patil on 29 Nov 2012

No, it is not z assignment.. first column have some data, and for same no. in first column it will find all data related with that no. and it will do mean of max and min found from all data and it will assigned to z..

Walter Roberson on 29 Nov 2012

Which line is it producing the error message against?

Lalit Patil on 29 Nov 2012

problem get solved..

I have changed only

    c = data(data(:,2)==i,1);

Thank you...!

Walter Roberson

Contact us