Handling UITable Cell Array
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello Matlab Community,
I am trying to code the GUI for my thesis,
I used UITable, in the table I input the initial condition which is a value always, and the next column is the deterioration equation in time. Example equations: e^t, sin(t), t^2 - 2t, t and so on.
I would like to be able to create an array of equations using the the approach t0 + f(t), but UITable stores the data in cell format and thus my question is, how can I convert the data in order to utilize them effectively as equations in matlab.
댓글 수: 0
답변 (1개)
Walter Roberson
2017년 5월 19일
편집: Walter Roberson
2017년 5월 19일
In a situation like that, you would probably get() the Data property of the uitable, and then for each position where an equation was expected, using {} indexing to extract the string stored there. Then you would probably use str2func() to turn the expression into a function handle that you could execute. If you have the symbolic toolbox it can make sense sometimes to sym() the string instead of str2func() -- though using sym() for that is likely to generate a warning these days.
댓글 수: 2
Walter Roberson
2017년 5월 19일
You can replace the above with
equationsA = sym( completeData(:,3) );
equationsB = sym( completeData(:,5) );
Note that the results will be a vector of symbolic expressions, not functions. If you want symbolic functions, then
equation_vars = [x, y];
equationsA = cellfun(@(F) symfun(sym(F), equation_vars), completeData(:,3), 'Uniform', 0);
equationsB = cellfun(@(F) symfun(sym(F), equation_vars), completeData(:,5), 'Uniform', 0);
This would give you a cell array of symbolic functions. You need to store them in a cell array in order to access them individually
equationsA{1}(pi, 19) %for example
참고 항목
카테고리
Help Center 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!