I initially converted some .mat files to tab-separated .txt using dlmwrite, but for some reason the values were not recognized on other platforms, and shows "NaN or non numerical error" instead. I was thinking that num2str could possibly bypass this issue. Here is what I have, but where do I add the tab-separated component?
% Length
load('Lengths.mat')
Len = num2str(DistMatrix)
diary('Lengths.txt')
disp(Len)
diary off
% Weights
load('Weights.mat')
Wei = num2str(CatMatrix)
diary('Weights.txt')
disp(Wei)
diary off

2 件のコメント

Adam Danz
Adam Danz 2019 年 5 月 15 日
What is "DistMatrix" ? A matrix? A column vector? A row vector? A numeric scalar? Same with CatMatrix?
Why not use a function that is designed to write to text rather than using diary?
Wei Wen Chen
Wei Wen Chen 2019 年 5 月 15 日
Both DistMatrix and CatMatrix are 16x16 double.
Part of the reason for using diary was just to try something new. The other one being I originally had issues with dlmwrite.

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

 採用された回答

Adam Danz
Adam Danz 2019 年 5 月 15 日
編集済み: Adam Danz 2019 年 5 月 16 日

0 投票

If you're using r2019a, use writematrix().
DistMatrix = magic(16); % fake matrix 16x16
fn = 'Lengths.txt'; % file name
writematrix(DistMatrix,fn,'Delimiter','\t') % tab delimiter
Prior to r2019a, you can use this low level function but ~17 decimal places will be recorded.
DistMatrix = magic(16); % fake matrix 16x16
fn = 'Lengths.txt'; % file name
save(fn, 'DistMatrix', '-ascii', '-double', '-tabs') % Save matrix to file with tab delimiter
Or you can use dlmread()
DistMatrix = magic(16); % fake matrix 16x16
fn = 'Lengths.txt'; % file name
dlmwrite(fn,DistMatrix,'delimiter','\t')
Or you can use diary() but I don't recommend this. I'm only including it because it's used in the question.
DistMatrix = magic(16); % fake matrix 16x16
fn = 'Lengths.txt'; % file name
diary on
disp(DistMatrix) %display matrix in command window
diary(fn)
diary off
winopen(fn)

2 件のコメント

Wei Wen Chen
Wei Wen Chen 2019 年 5 月 16 日
Will I be able to round the values to the nearest thounsanth by incoporating the round function (or other functions)? I thought about setting the .txt file as variable (A), and do Y = round (A,3), but (A) becomes a 16x16 double again.
Adam Danz
Adam Danz 2019 年 5 月 16 日
I didn't understand your question. Which method are you applying?
Also, I updated my answer to include two more options for matlab releases prior to r2019a.

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

その他の回答 (0 件)

製品

リリース

R2018b

質問済み:

2019 年 5 月 15 日

コメント済み:

2019 年 5 月 16 日

Community Treasure Hunt

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

Start Hunting!

Translated by