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

1 visualizzazione (ultimi 30 giorni)
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).

Risposta accettata

Walter Roberson
Walter Roberson il 7 Lug 2023
Modificato: Walter Roberson il 7 Lug 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.
  2 Commenti
Walter Roberson
Walter Roberson il 7 Lug 2023
This is not going to happen for the kind of array that you used. Perhaps at some point it might be supported for symarray

Accedi per commentare.

Più risposte (1)

Gandham Heamanth
Gandham Heamanth il 7 Lug 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 Commento
Zijun
Zijun il 7 Lug 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?

Accedi per commentare.

Tag

Prodotti


Release

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by