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

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

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

답변 (1개)

Fangjun Jiang
Fangjun Jiang 2018년 1월 30일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Programmatic Model Editing에 대해 자세히 알아보기

질문:

2018년 1월 30일

댓글:

2018년 1월 30일

Community Treasure Hunt

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

Start Hunting!

Translated by