display symbols between numbers from a vector
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Vincent TORRELLI
el 18 de Oct. de 2019
Comentada: Vincent TORRELLI
el 18 de Oct. de 2019
Hello,
I'm writing a code to help people on mental computation. To do so, I want to display a sum with the symbol "+" between two numbers located in a vector.
I know it should be simple but I did not succeed so far. Here is an example:
I want to display on command window:
>> 10 + 11
The values 10 and 11 are located in a vector such as:
calc=[10 11];
I tried to do the following code but it doesn't work:
sum_1= [calc(1)," + ", calc(2)];
disp(sum_1);
Can you help me please. Thank you very much.
Vincent
1 comentario
Respuesta aceptada
Ted Shultz
el 18 de Oct. de 2019
you can use fprintf to print just about anything you want.
calc=[10 11];
fprintf('%i + %i\n', calc(1), calc(2))
4 comentarios
Ted Shultz
el 18 de Oct. de 2019
If you want spaces, you may want to just build up the line element by element. One way to do this would be:
a=[ 1 3 -4 5 -10];
workingString = sprintf('%i ',a(1));
for ii = 2:numel(a)
if a(ii) >= 0
thisSymbol = '+';
else
thisSymbol = '-';
end
workingString = [workingString sprintf('%s %i ',thisSymbol , abs(a(ii) ))]; %#ok<AGROW>
end
workingString = [workingString newline];
disp(workingString)
this gives:
1 + 3 - 4 + 5 - 10
Más respuestas (2)
Steven Lord
el 18 de Oct. de 2019
Since you're using double quotes to create a string, turn your numeric vector into a string array then join the elements of that string array together.
calc = [10 11]
S = string(calc)
sum_1 = join(S, " + ")
You could do this in one line if you don't want to name the string temporary variable.
calc = [10 11]
sum_1 = join(string(calc), " + ")
Alternately if your calc vector is longer and you want to add different symbols you can use + to concatenate the string and numeric data together.
calc = 10:12;
sum1 = calc(1) + " + " + calc(2) + " * " + calc(3)
If this needs to run on an older release of MATLAB that doesn't support string, you can use sprintf.
calc = [10 11]
sum_1 = sprintf('%d + %d', calc)
0 comentarios
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!