Converting inputdlg entries to symbols in a matrix

2 次查看(过去 30 天)
Code for non-symbol case:
Matrices = inputdlg({'Matrix 1', 'Matrix 2'})
Matrix1 = str2num(Matrices{1})
Matrix2 = str2num(Matrices{2})
Product = Matrix1*Matrix2
I have tried the following but it does not work.
str2sym(Matrices{1})
I want the user to be able to enter somethig like a 40; c 20 and have this converted to a matrix whilst recognising the letters as symbolic values.

回答(1 个)

Walter Roberson
Walter Roberson 2021-7-8
You need to have [] around the entries. str2sym() will not assume that a space is to indicate a list.
Matrices = {'40', 'c 20'}
Matrices = 1×2 cell array
{'40'} {'c 20'}
str2sym(Matrices{1})
ans = 
40
str2sym("["+ Matrices{2}+"]")
ans = 

类别

Help CenterFile Exchange 中查找有关 Entering Commands 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by