How can I add a different string to each element in a matrix?

I have a (soon to be) large vector and I want to add a string before each element, something like:
"Data Trial 1 - (1st vector element)"
"Data Trial 2 - (2nd vector element)"
... and so on
This is my code:
files = dir('*.xlsx');
for i=1:length(files)
x = importdata(files(i).name); % Creates x.data and x.textdata
z1 = x.data(:,5); % Grabs column 5 from x.data
z2 = x.data(:,6); % Grabs column 6 from x.data
%%Obtains value closest to 0 in column 'z2' (column 6)
numb=0;
[~, imin] = min(abs(z2 - numb));
plot(z1,z2);
hold on
plot(z1(imin),z2(imin),'*')
value(i) = z2(imin);
end
%%Displays value closest to 0 in the respective order the data was imported
disp(value')
After the code is run, the vector looks like this:
>> test2
0.0225
0.0269
0.0258
0.0284
0.0246
0.0231
0.0249
0.0271
0.0341
0.0338
How can I add a string before each number in the vector?

댓글 수: 1

Please provide an example of desired output. Do you want to concatenate a string with the number?

댓글을 달려면 로그인하십시오.

 채택된 답변

Ameer Hamza
Ameer Hamza 2018년 6월 7일
One approach is as follow if you want to store all the values in an array,
values = [1,2,3,4,5];
charValues = compose('Data Trial %d - %f', (1:length(values))', values')
charValues =
5×1 cell array
{'Data Trial 1 - 1.000000'}
{'Data Trial 2 - 2.000000'}
{'Data Trial 3 - 3.000000'}
{'Data Trial 4 - 4.000000'}
{'Data Trial 5 - 5.000000'}
If you just want to display, then try
disp(sprintf('Data Trial %d - %f\n', (1:length(values))', values'))

댓글 수: 2

Exactly what I was looking for, thank you!
You are welcome.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2018년 6월 7일

댓글:

2018년 6월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by