2015-12-30 86 views
1

做出幾個行的字符串變量需要幾行,例如寫一個字符串變量波紋管:我如何通過一個循環

a = 1, b = 2, c = 3  
a = 0, b = 5, c = 1  
a = 4, b = 2, c = 0  
a = 8, b = 7, c = 3  
a = 3, b = 0, c = 8  
a = 2, b = 9, c = 3  
...  
a = 1, b = 5, c = 5 

並將其保存在一個文本文件中。

我有一個包含3列a,b和c的矩陣。什麼是問題是字符串的定義。什麼只是想到卻是絕對錯誤的情況如下,我只是寫了這個解釋我的問題更好:

for i = 1:100 
s(i) = (['a = ',num2str(A(i,1)),'b = ',num2str(A(2,1)),'c = ',num2str(A(2,1))]); 
end 

我怎麼能產生這樣的文本文件?

回答

1

您可以保存這個矩陣:

A = round(abs(10*randn(100,3)));    %generation of random matrix 

    fid = fopen('data.txt','w');     %creation of the file data.txt, w stand for writing 
    fprintf(fid,'a = %d, b = %d, c = %d\n',... 
A(:,1),A(:,2),A(:,3));       %write the text 
    fclose(fid);         %close the file 
+0

你的代碼與@randomGuy發佈的代碼有相同的問題。 –

0

sprintf('a = %i, b = %i, c = %i\n',A(:,1),A(:,2),A(:,3))

將產生的你想在你的文本文件保存什麼的字符串。

+0

通知,您的codeactually寫入輸入矩陣「逐列的值,即它分配給了'''B'和'C'第一在A的第一列中的值,然後在第二列中的值等等,而在問題中,說明'a','b'和'c'的值由列定義。 –

1

您可以使用dlmwrite函數寫串在.txt文件,如下所示:

dlmwrite('my_output_file.txt',sprintf('a = %i, b = %i, c = %i\n',A'),'delimiter','') 

通知,您應該使用輸入矩陣A的transpose otherwhise值無線本地環路是得到「逐列」。

希望這會有所幫助。

+0

這是唯一的回答這裏,解決OP的問題+1。 – rayryeng