uint16 dimensions work in tiledlayout but not in nexttile

3 views (last 30 days)
Try running the following sequence of commands, which gets an error:
numXTiles = uint16(2);
numYTiles = uint16(1);
mainTile = numXTiles * numYTiles + 1;
mainYTiles = numYTiles * 2;
numYTiles = numYTiles + mainYTiles;
tiles = tiledlayout(numYTiles, numXTiles);
ax = nexttile(tiles, mainTile, [mainYTiles numXTiles]);
Then try this sequence, which doesn't get an error:
numXTiles = 2;
numYTiles = 1;
mainTile = numXTiles * numYTiles + 1;
mainYTiles = numYTiles * 2;
numYTiles = numYTiles + mainYTiles;
tiles = tiledlayout(numYTiles, numXTiles);
ax = nexttile(tiles, mainTile, [mainYTiles numXTiles]);
The documentation for nexttile says that the tilelocation and span "are positive whole numbers".
I get this error when using uint16:
Error using +
Integers can only be combined with integers of the same class, or scalar doubles.
Error in nexttile
Error in nexttile
  3 Comments
Bruno Luong
Bruno Luong on 14 Nov 2022
I agree, it looks like a bug. But workaround is easy (cast to input double)
Harshit Gupta
Harshit Gupta on 18 Nov 2022
I work at MathWorks and have forwarded this feedback to the relevant team.

Sign in to comment.

Answers (1)

Rahul
Rahul on 5 May 2025
The error looks like a bug. I was able to reproduce the error in MATLAB R2022a.
I observed that this has been resolved from MATLAB R2023b onwards. You can consider uprading to a more recent version to resolve this issue.
Thanks.

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!