Is it possible to create a symbolic matrix whose dimensions are symbolic scalar variables?

1 view (last 30 days)
Is it possible to create a symbolic matrix whose size is denoted by symbolic scalar variables?
Like this
syms x y
syms z [x y]
where x and y are symbolic scalar variables, and I want to create a symbolic matrix z with a size (x, y).

Accepted Answer

Walter Roberson
Walter Roberson on 7 Jul 2023
Edited: Walter Roberson on 7 Jul 2023
No, it is not possible in MATLAB. At the MATLAB level, symbolic arrays are plain arrays of objects, and the arrays have definite size at the MATLAB level.
For reasons I have not worked out yet, symmarray are implemented as having a fixed size even though in a sense they are scalar at the MATLAB level.

More Answers (1)

Gandham Heamanth
Gandham Heamanth on 7 Jul 2023
Hi Zijun, here is the small code on how you can create a symbollic matrix whose size is denoted by symbolic scalar variables.
syms x y;
x = 4;
y = 5;
z = sym('z', [x y]);
z = 
  1 Comment
Zijun
Zijun on 7 Jul 2023
Thanks, Gandham. But if I don't know the value of x and y a priori? For example, I want to generate a file using matlabFunction:
syms x y
syms z [x y]
matlabFunction(z, 'File', 'function_z.m');
There will be a function defined in the file function_z.m:
z=function_z(x,y)
then each time I call the function, I will pass in two arguments x and y such that the size of z is dynamically dependent on x and y.
Is it possible?

Sign in to comment.

Tags

Products


Release

R2023a

Community Treasure Hunt

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

Start Hunting!