please give correction in code

The image and code is
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.

Answers (2)

Andrei Bobrov
Andrei Bobrov on 29 Nov 2012
Edited: 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

Again it shows error
??? In an assignment A(I) = B, the number of elements in B and I must be the same.
corrected
Yeh, now it is working, but all values of Z are Nan.. Why.?
That would happen if r was empty.
textread() is obsolete. Please recode using textscan().
Walter Roberson
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

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..
Which line is it producing the error message against?
problem get solved..
I have changed only
c = data(data(:,2)==i,1);
Thank you...!

This question is closed.

Asked:

on 29 Nov 2012

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!