why my variable value become these sysbols?

2 vues (au cours des 30 derniers jours)
JI RONG
JI RONG le 2 Déc 2022
Commenté : Les Beckham le 2 Déc 2022
InfoImage = imfinfo(filename);
Width = InfoImage.Width;
Height = InfoImage.Height;
app.SizeImageEditField.Value = [Width,'x',Height];
This is my code. Thanks.

Réponse acceptée

Les Beckham
Les Beckham le 2 Déc 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 commentaires
JI RONG
JI RONG le 2 Déc 2022
Thank you! Help much for me.
Les Beckham
Les Beckham le 2 Déc 2022
You are quite welcome.

Connectez-vous pour commenter.

Plus de réponses (1)

Steven Lord
Steven Lord le 2 Déc 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"

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by