Symbolic Matrix members evaluation
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
AMEHRI WALID
am 16 Nov. 2020
Kommentiert: Steven Lord
am 16 Nov. 2020
Hello everyone,
I am using the symbolic toolbox to create symbolic matrices, then I need to evaluate the value of each members of the matrix.
So, here is what I have done so far.
clear;
clc;
A = sym('A', [2, 3], 'real')
for i = 1:2
for j = 1:3
A(i, j) = i*j;
z = str2sym ( strcat('A', num2str(i), '_', num2str(j) ) )
end
end
Then, I obtain:
>> A
A =
[ 1, 2, 3]
[ 2, 4, 6]
However, when I want to get the member value, e.g: A1_3, I got the error "Unrecognized function or variable 'A1_3'."
That's why I created a string and conver to a symbolic value, and store in z. But I don't know how to get my Ai_j = A(i, j).
My goal is that each member Ai_j of the symbolic matrix gets the value of A(i, j). Can anyone help me with this ?
Thanks in advance.
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 16 Nov. 2020
Why do you want to create variable names like A1_3, A2_3, etc., when you can directly index the matrix A. Creating a separate variable name for each element is not an efficient coding approach: https://www.mathworks.com/matlabcentral/answers/304528-tutorial-why-variables-should-not-be-named-dynamically-eval.
Also, MATLAB does not provide a good way of doing what you want to do.
5 Kommentare
Steven Lord
am 16 Nov. 2020
Actually, I want to avoid directly indexing the matrix A because its size changes every time in my application
That's no problem. Use size or numel to avoid having to hard-code the size of the matrix.
function showAllElements(A)
fprintf("Input argument A is of size [" + num2str(size(A)) + "]." + newline);
for whichElement = 1:numel(A)
fprintf("Element " + whichElement + " of A is %g.\n", A(whichElement));
end
Call this as:
showAllElements(magic(4))
showAllElements(rand(3, 5))
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!