why my variable value become these sysbols?

조회 수: 1 (최근 30일)
JI RONG
JI RONG 2022년 12월 2일
댓글: Les Beckham 2022년 12월 2일
InfoImage = imfinfo(filename);
Width = InfoImage.Width;
Height = InfoImage.Height;
app.SizeImageEditField.Value = [Width,'x',Height];
This is my code. Thanks.

채택된 답변

Les Beckham
Les Beckham 2022년 12월 2일
Probably because Width and Height are not character vectors, but numeric doubles instead.
Try this:
InfoImage = imfinfo(filename);
Width = num2str(InfoImage.Width);
Height = num2str(InfoImage.Height);
app.SizeImageEditField.Value = [Width,'x',Height];
  댓글 수: 2
JI RONG
JI RONG 2022년 12월 2일
Thank you! Help much for me.
Les Beckham
Les Beckham 2022년 12월 2일
You are quite welcome.

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

추가 답변 (1개)

Steven Lord
Steven Lord 2022년 12월 2일
When you concatenate together a char vector and a number, MATLAB does not convert the number into its character representation. It converts it into a character based on its value. From the display and some guess and check on the Unicode tables I'm guessing your image is somewhere around 1670 columns wide? I haven't tried to look for the width character.
x = 0x686
x = uint16 1670
c = char(x)
c = 'چ'
If you want to combine text data and numeric data and have the number converted to its character representation, one easy way to do that is to use a string array and the + operator (which for string arrays is concatenation.)
s = 1670 + " x " + 800
s = "1670 x 800"

카테고리

Help CenterFile Exchange에서 Data Type Conversion에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by