| 1 | function[] = generateRunSaveTest_EMGrank(n, p, m, k, mini, maxi, gamma, rank, varargin) |
| 2 | |
| 3 | %set defaults for optional inputs |
| 4 | optargs = {200 15 10 3 5 10 1.0 1:3}; |
| 5 | %replace defaults by user parameters |
| 6 | optargs(1:length(varargin)) = varargin; |
| 7 | [n, p, m, k, mini, maxi, gamma, rank] = optargs{:}; |
| 8 | mini = int64(mini); |
| 9 | maxi = int64(maxi); |
| 10 | rank = int64(rank); |
| 11 | tau = 1e-6; |
| 12 | |
| 13 | Pi = (1.0/k)*ones(1,k); |
| 14 | Rho = zeros(m,m,k); |
| 15 | for r=1:k |
| 16 | Rho(:,:,r) = eye(m); |
| 17 | end |
| 18 | |
| 19 | %Generate X and Y |
| 20 | [X, Y, ~] = generateIOdefault(n, p, m, k); |
| 21 | |
| 22 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
| 23 | |
| 24 | testFolder = 'data/'; |
| 25 | mkdir(testFolder); |
| 26 | delimiter = ' '; |
| 27 | |
| 28 | %save inputs |
| 29 | dlmwrite(strcat(testFolder,'Rho'), reshape(Rho,1,[]), delimiter); |
| 30 | dlmwrite(strcat(testFolder,'Pi'), Pi, delimiter); |
| 31 | dlmwrite(strcat(testFolder,'mini'), mini, delimiter); |
| 32 | dlmwrite(strcat(testFolder,'maxi'), maxi, delimiter); |
| 33 | dlmwrite(strcat(testFolder,'X'), reshape(X,1,[]), delimiter); |
| 34 | dlmwrite(strcat(testFolder,'Y'), reshape(Y,1,[]), delimiter); |
| 35 | dlmwrite(strcat(testFolder,'tau'), tau, delimiter); |
| 36 | dlmwrite(strcat(testFolder,'rank'), rank, delimiter); |
| 37 | dlmwrite(strcat(testFolder,'dimensions'), [n,p,m,k], delimiter);; |
| 38 | |
| 39 | [phi,LLF] = EMGrank(Pi,Rho,mini,maxi,X,Y,tau,rank); |
| 40 | |
| 41 | %save output |
| 42 | dlmwrite(strcat(testFolder,'phi'), reshape(phi,1,[]), delimiter); |
| 43 | dlmwrite(strcat(testFolder,'LLF'), LLF, delimiter); |
| 44 | |
| 45 | end |