why my variable value become these sysbols?

1 Ansicht (letzte 30 Tage)
JI RONG
JI RONG am 2 Dez. 2022
Kommentiert: Les Beckham am 2 Dez. 2022
InfoImage = imfinfo(filename);
Width = InfoImage.Width;
Height = InfoImage.Height;
app.SizeImageEditField.Value = [Width,'x',Height];
This is my code. Thanks.

Akzeptierte Antwort

Les Beckham
Les Beckham am 2 Dez. 2022
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 Kommentare
JI RONG
JI RONG am 2 Dez. 2022
Thank you! Help much for me.
Les Beckham
Les Beckham am 2 Dez. 2022
You are quite welcome.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Steven Lord
Steven Lord am 2 Dez. 2022
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"

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by