How to save fprint as a string in .mat file

2 ビュー (過去 30 日間)
Stephen john
Stephen john 2022 年 6 月 13 日
コメント済み: Walter Roberson 2022 年 6 月 14 日
Hello everyone, I hope you are doing well. I have the following data and code which do clustering.
I want to save the result of the following which print cluster mean and max into string which store in .mat file
Like the ouput from
fprintf(formatSpec,i,Mcluster1PW) ,
fprintf(formatSpec,i,MclusterTimeseries),
fprintf(formatSpec,i,MclusterFrequncy)
fprintf(formatSpec,i,MclusterAmplitude)
will be save as string in .mat file which load and use for display
eva = evalclusters(dataset,'kmeans','silhouette','KList',[1:10]);
K=eva.OptimalK;
% K=2;
%Apply Kmeans to the dataset with Optimal Clusters K
disp('Calculating Centroid')
[idx,C,sumdist] = kmeans(dataset,K,'Display','final','Replicates',5);
Timeseriesdata=sort(dataset(:,1));
dataset_idx=zeros(size(dataset,1));
dataset_idx=dataset(:,:);
dataset_idx(:,5)=idx;
clusters = cell(K,1);
for i = 1:K
clusters{i} = dataset_idx(dataset_idx(:,5) == i,:);
end
for i = 1:K
T = clusters{i}(:,1);
fprintf('\nCLUSTER %d:\n',i)
DeltaT = diff(T);
MclusterTimeseries = mean(DeltaT);
formatSpec = 'Mean DeltaT of Cluster %d is %4e\n';
fprintf(formatSpec,i,MclusterTimeseries)
MclusterFrequncy = mean(clusters{i}(:,2));
formatSpec = 'Mean Frequncy of Cluster %d is %4e\n';
fprintf(formatSpec,i,MclusterFrequncy)
MclusterAmplitude = max(clusters{i}(:,3));
formatSpec = 'Max Amplitude of Cluster %d is %4.4f\n';
fprintf(formatSpec,i,MclusterAmplitude)
Mcluster1PW = mean(clusters{i}(:,4));
formatSpec = 'Mean Pulse Width of Cluster %d is %4e\n';
fprintf(formatSpec,i,Mcluster1PW)
end

回答 (1 件)

Rik
Rik 2022 年 6 月 13 日
If you want to store the text output you should use sprintf to create the formated text. Then you can use fprintf to print to the command window.
Then you have the choice to store the char vectors (i.e. the text) as variables in a mat file, or use fopen and fprintf (and fclose) to write the text to a text file.
  10 件のコメント
Stephen john
Stephen john 2022 年 6 月 14 日
fprintf(fid, '%s\n', OUT{:});
fclose(fid);
OutMatName = 'OutputFile.mat';
OUT = string(OUT);
save(OutMatName, 'OUT')
Error using string
Conversion from cell failed. Element 31 must be convertible to a string scalar.
Walter Roberson
Walter Roberson 2022 年 6 月 14 日
Hmmm...
Please show
size(OUT)
class(OUT)
OUT(31)
size(OUT(31))
class(OUT(31))

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

製品


リリース

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by