simulink double value into a logical type error

if true
function y = ratioimg(u)
[L2,num2]=bwlabel(u,8); %連通區域標記
B2=false(size(u));
for i=1:num2
[r,c] = find(L2==i);
left = min(c);
right = max(c);
up = min(r);
down = max(r);
d = (down-up) / (right-left);
if d > 0.7 & d < 1.42
% [x,y]=find(L2==i); % Done above already
B2 = B2 + bwselect(u, c, r, 8); %%%把滿足長寬比在0.8到2的區域留下
end
end
y = B2;
end
i use this function on the simulink but show the error

7 Commenti

Can you share your simulink model?
Birdman
Birdman il 30 Gen 2018
Modificato: Birdman il 30 Gen 2018
Do you have to do the data type conversion inside a MATLAB Function block?
no just that code
so how to conversion?
Which line the conversion will take place? Be more specific.
B2 = B2 + bwselect(u, c, r, 8); change double

Accedi per commentare.

Risposte (1)

B2 is logical.
B2 = B2 + bwselect(u, c, r, 8)
should be
B2 = or(B2,bwselect(u, c, r, 8))

Richiesto:

il 30 Gen 2018

Commentato:

il 30 Gen 2018

Community Treasure Hunt

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

Start Hunting!

Translated by