# How to get the 1×1 cell array?

2 vues (au cours des 30 derniers jours)
Smithy le 3 Jan 2023
Modifié(e) : Stephen23 le 3 Jan 2023
hello, everybody
I would like to get the 1×1 cell array of {'m, -10, -15, L -4.7, 0 c 0, 0'}.
some values are caluclated from the variables.
I tried with str = {'m, offset+pos, offset+neg, L -neg+0.3, 0 c 0, 0'}.
However, the answer is {'m, offset+pos, offset+neg, L -neg+0.3, 0 c 0, 0'}.
it is just string and no calculation of variables.
I also tried with str = {"m", offset+pos, offset+neg, "L" -neg+0.3, 0 "c" 0, 0};
There is calculation of variables, However, it is 1×9 cell array.
How to get the 1×1 cell array of {'m, -10, -15, L -4.7, 0 c 0, 0'}?
offset = -20;
pos = 10;
neg = 5;
% str = {'m, offset+pos, offset+neg, L -neg+0.3, 0 c 0, 0'}; % just string and no calculation of variables
% str = {"m", offset+pos, offset+neg, "L" -neg+0.3, 0 "c" 0, 0}; % it is 1×9 cell array
% output I want is : 1×1 cell array of {'m, -10, -15, L -4.7, 0 c 0, 0'}
% str = {'m, -10, -15, L -4.7, 0 c 0, 0'};
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Stephen23 le 3 Jan 2023
Modifié(e) : Stephen23 le 3 Jan 2023
The best approach is to either use SPRINTF, just as Voss shows here:
or the new overloaded STRING operators, e.g.:
offset = -20;
pos = 10;
neg = 5;
str = "m, "+(offset+pos)+","+(offset+neg)+" L "+(-neg+0.3)+", 0 c 0, 0"
str = "m, -10,-15 L -4.7, 0 c 0, 0"

Connectez-vous pour commenter.

### Réponse acceptée

KSSV le 3 Jan 2023
offset = -20;
pos = 10;
neg = 5;
str = {['m, ', num2str(offset+pos),',', num2str(offset+neg), ' L ', num2str(-neg+0.3),',', '0 c 0, 0']}; % just string and no calculation of variables
str
str = 1×1 cell array
{'m, -10,-15 L -4.7,0 c 0, 0'}
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Smithy le 3 Jan 2023
Wow.. Thank you very much~!!! It works really well. I really really appreciate with it.

Connectez-vous pour commenter.

### Plus de réponses (1)

Voss le 3 Jan 2023
offset = -20;
pos = 10;
neg = 5;
str = {sprintf('m, %g, %g, L -%g, 0 c 0, 0',offset+pos,offset+neg,neg-0.3)}
str = 1×1 cell array
{'m, -10, -15, L -4.7, 0 c 0, 0'}
##### 1 commentaireAfficher -1 commentaires plus anciensMasquer -1 commentaires plus anciens
Smithy le 3 Jan 2023
Thank you very much. It works well. Wonderful.

Connectez-vous pour commenter.

### Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

R2022a

### Community Treasure Hunt

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

Start Hunting!

Translated by