putting a sequence of text values into a multivariable function.

2 vues (au cours des 30 derniers jours)
Jaime Rafael Hernandez Pallares
The problem is easy, but i dont find the solution.
Lets say we want combine some vectors: a1, a2, a3.
a1 = [1,2,3];
a2 = [21,22,23];
a3 = [31,32];
Comb = combvec(a1,a2,a3);
for that we can use the function Comb = combvec(a1,a2,a3). So the solution is:
a =
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
21 21 21 22 22 22 23 23 23 21 21 21 22 22 22 23 23 23
31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 32
which is the vector of all the posible combinations.
Now, lets supouse that there is a case where we dont know how many vectors we have ( they are generated while running ).
However, we can get a char with the name of those vectors like:
n = 3;
final=[];
for k=1:3
if n >= 2
Data = ['a' num2str(k) ','];
n=n-1;
else
Data = ['a' num2str(k)];
end
final=strcat(final,Data);
end
Comb = combvec(final).
And the result of this is operation is a single char: final = ('a1,a2,a3');
But if we try to insert this array into the function like: Comb = combvec(final). We will get this result:
a =
'a1,a2,a3'
Can someone help me to solve it?
Thanks

Réponses (1)

Shanmukha Voggu
Shanmukha Voggu le 1 Déc 2021
Hi Jamie,
I understood that you want to process a char that contains the variable names of matrices separated by commas
This can be achieved by calling combvec multiple times
a1 = [1,2,3];
a2 = [21,22,23];
a3 = [31,32];
% The code below assumes the variable names mentioned in "inputString"
% are already inside the workspace
inputString='a1,a2,a3';
matrixNames=split(inputString,",")% split the string using delimiter as comma
matrixNames = 3×1 cell array
{'a1'} {'a2'} {'a3'}
answer=eval(matrixNames{1});% initialize the answer variable
for i = 2:length(matrixNames)
secondMatrix=eval(matrixNames{i});% evaluate the expression
answer=combvec(answer,secondMatrix);
end
answer
answer = 3×18
1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 21 21 21 22 22 22 23 23 23 21 21 21 22 22 22 23 23 23 31 31 31 31 31 31 31 31 31 32 32 32 32 32 32 32 32 32
Refer this for more information.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by