数日前、私はこの質問を投稿し、次の素晴らしい解決策を得ました:
fid = fopen('C:\Testes_veloc\test.txt', 'Wt');
fmt = sprintf('%s;%d;%%d;%d;%d;%%d;%%d;%%d;%%.4f \\n',str1,num1,0,2)
[a,b,c,d] = ndgrid(vect2,vect1,day,1:15);
out = sprintf(fmt, [d(:), c(:), b(:), a(:), reshape(permute(MD,[2,1,3,4]),[],1)]');
fprintf(fid, '%s', out);
変数str1、num1、day、vect1、vect2およびMDは、この関数の入力です。
str1文字列 1x1 ですnum1整数 1x1 ですdayはベクトル 10x1 ですvect1ベクトルは 7x1 ですvect2ベクトルは 180x1 ですMD4D マトリックス (7x180x10x15) です。
目的は、次のようなテキスト ファイルを持つことでした。
result.txt:
RED;12;7;0;2;1;4;7;0.0140
RED;12;7;0;2;2;9;7;0.1484
RED;12;7;0;2;3;7;4;0.1787
RED;12;7;0;2;4;2;6;0.7891
RED;12;7;0;2;5;9;6;0.1160
RED;12;7;0;2;6;9;1;0.9893
ただし、str11x1 文字列ではありません。それは名前のベクトル (189000x1) で、私が望むテキストの長さです。つまり、「RED」だけでなく、他にもさまざまな文字列があります。このベクトル化されたループをこの状況に合わせることは可能ですか?
私はこれを試しました(連結部分に追加しstr1(:)ます)が、失敗しました:
fmt = sprintf('%%s;%s;%d;%%d;%d;%d;%%d;%%d;%%d;%%.4f \\n',str1,num1,0,2)
out = sprintf(fmt, [str1 (:), d(:), c(:), b(:), a(:), reshape(permute(MD,[2,1,3,4]),[],1)]');
たとえば、str(1,:) = 'RED'; str(2,:) = 'FHAW'; str(3,:) = 'KI81'; このような細胞です。文字列を数字に連結できません。誰にも解決策がありますか?
前もって感謝します。