Как отобразить (распечатать) вектор в Matlab?
у меня есть вектор x = (1, 2, 3)
и я хочу отобразить (распечатать) его как Answer: (1, 2, 3)
.
Я пробовал много подходов, в том числе:
disp('Answer: ')
strtrim(sprintf('%f ', x))
но я все еще не могу заставить его печатать в формате, который мне нужен.
может кто-нибудь указать мне на решение, Пожалуйста?
EDIT:
Как значения, так и (длина)x
заранее не известны.
6 ответов
Я предпочитаю следующее, что чище:
x = [1, 2, 3];
g=sprintf('%d ', x);
fprintf('Answer: %s\n', g)
выходы
Answer: 1 2 3
можно использовать
x = [1, 2, 3]
disp(sprintf('Answer: (%d, %d, %d)', x))
в результате
Answer: (1, 2, 3)
для векторов произвольного размера, вы можете использовать
disp(strrep(['Answer: (' sprintf(' %d,', x) ')'], ',)', ')'))
альтернативным способом было бы
disp(strrep(['Answer: (' num2str(x, ' %d,') ')'], ',)', ')'))
вот более обобщенное решение, которое печатает все элементы X вектора x в этом формате:
x=randperm(3);
s = repmat('%d,',1,length(x));
s(end)=[]; %Remove trailing comma
disp(sprintf(['Answer: (' s ')'], x))
для печати вектора, который, возможно, имеет комплексные числа -
fprintf('Answer: %s\n', sprintf('%d ', num2str(x)));