How can I add a different string to each element in a matrix?
    5 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
  Paolo
      
 2018-6-7
				Please provide an example of desired output. Do you want to concatenate a string with the number?
采纳的回答
  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'))
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


