error "The expression to the left of the equals sign is not a valid target for an assignment."

I run a test program shown below:
clear all;
clc;
image_a = imread('doll_full_color','png');
histo = histogram(image_a);
error comes:
??? Error: File: histogram.m Line: 12 Column: 30
The expression to the left of the equals sign is not a valid target for an assignment.
Error in ==> test_his at 5
histo = histogram(image_a);
For your information, histogram is a function I defined to calcuate the histogram of an image,shown below:
function [ histo ] = histogram( image )
%UNTITLED3 Summary of this function goes here
% Detailed explanation goes here
clc;
[row, column] = size(image,3);
histo = zeros(256,3);
histo_sum = zeros(256,3);
for m=1:1:3
for i=0:1:255
for j=1:1:row
for k=1:1:column
if( image(j,k,m) = i)
histo_sum(i,m) = histo_sum(i,m) +1;
end
end
end
end
end
histo = histo_sum/(row*column);
end
Anyone can help solve the problem? Thank you!

 採用された回答

The comparison operator is ==
if( image(j,k,m) == i)

その他の回答 (4 件)

supriya
supriya 2012 年 4 月 18 日
I m not sure but try this...
image_a = imread('doll_full_color.png'); histo = histogram(image_a);

1 件のコメント

Jiayuan
Jiayuan 2012 年 4 月 18 日
thanks, problem is solved, referring to Walter Roberson's answer.

サインインしてコメントする。

zhang
zhang 2013 年 4 月 19 日
but how to solve the problem blew:
clear all
t0=0;
dt=0.05;
t1=1;
tf=5;
t=[t0:dt:tf];
st=length(t);
n1=floor((t1-t0)/dt) x1=zeros(1,st); x(n1)=1/dt; subplot(2,2,1),stairs(t,x1),grid on
x2=[zeros(1,n1-1),ones(1,st-n1+1); subplot(2,2,3); stairs(t,x2); grid on w=10;; u=-0.5; x3=exp((u+j*w)*t); subplot(2,2,2),plot(t,real(x3)),grid on; subplot(2,2,4),plot(t,imag(x3)),grid on;
hope some can solve my problem!
dorai raj
dorai raj 2021 年 5 月 11 日
The expression to the left of the equals sign is not a valid target for an assignment
dorai raj
dorai raj 2021 年 5 月 11 日
i want h=1.3,where h=c/d:c=(n/m),m=(a/b)
n=1;
m=(1:10);
a=5;
b=(0.3:6);
while h>(c./d);
c=(n./m);d=(a./b);
h=1.3;

3 件のコメント

Your code is missing an end statement.
Please post your actual code.
dorai raj
dorai raj 2021 年 5 月 12 日
where h=c/d,
c=(n/m),m=(a/b)
n=2
m=0.1 to 8
a=1
b=0.4 to 9
how to get h=1.3?
c = n/m, m = a/b implies that c = n/(a/b) --> c = n*b/a
n and a are known values 2 and 1, so c = 2*b/1 --> c = 2*b
m is a/b where a = 1, so m = 1/b and m is restricted to 0.1 to 8 so that implies that b is restricted to the range 1/8 to 10 . But b = 0.4 to 9 which is a tighter restriction on both sides. The actual range of m is therefore 1/9 to 5/2
c = n/m and n = 2 and m is 1/9 to 5/2 so c = 2/(1/9 to 5/2) so c is in the range 2/9 to 5
h = c/d so h = (2/9 to 5) / d = 1.3 . So d = (2/9 to 5)/(13/10) which is 20/(9*13) to 50/3 which is about 0.171 to 16 2/3 .
There is not unique solution.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by