MATLAB Answers

how do i save looped output into 1 variable matrix

c=19;
>> D=[];
>> for k=1:c;
Z=[X(:,1),Y(:,1)];
p=anova1(Z)
D=save(p)
X(:,1)=[];Y(:,1)=[];
end

  댓글 수: 4

표시 이전 댓글 수: 1
Ok then, So… I have (2) 3 x19 matrices, A and B I want to perform anova1 on the first 3 elements of A and the first 3 elements in B Then I need to save individual results into a 3rd matrix that aligns with A and B(if possible) This is what I have so far…
G= 19 % loop count For k= 1:g C=[A(:,1),B(:,1)] % combines 1st column from A with 1st column from B P=anova1(C) % performs anova on “C” and displays answer A(:,1)=[], B(:,1)=[] % removes 1st column from A and B and moves next column into loop end
I think I need to pre-allocate an empty matrix(1x19) to hold the answers as a group and in order, but I can’t find it in the manuals…thanks for your input and time…i have 8 weeks in matlab...be gentle
this window is not working with me
"save" to store the result of an applied function...in this case i get 19 individual results...(that need to be stored or saved together as a group) "1 individual matrix"== all 19 answers saved together in a new "vertex" or a 1x19 matrix...sorry still learning the jargon

로그인 to comment.

태그

답변 수: 2

 채택된 답변

% X and Y are 3x19 matricies
%
% This syntax makes sure that if you end up having more (or less) columns
% in the future, you don't need to change the code
numColumns = size(X, 2);
% Pre-allocate for speed (create a 1 x numColumns vector)
p = zeros(1, numColumns);
% I used length(p) here to signal the intent that the loop is meant for
% modifying the vector p
for k = 1:length(p);
% using the loop variable *k* means that MATLAB will use a different
% column from X and Y to create Z for each loop
Z=[X(:,k),Y(:,k)];
% this will store the resulting value in the k-th position in the vector
% *p*
p(k)=anova1(Z);
end

  댓글 수: 2

this works...thankyou...can you tell why matlab seperates my identifier column and row of column headers from the data...and how to put them back together...with a new column of data...i have G= [A,B,Z] %%which puts the data columns and the answer column together..
the anova1() function displays a table and chart, along with the p-value,the manual says that i can turn this display off,but it doesn't say how... can you rewrite the p(k)= anova1(Z)....i've tried p(k)= anova1(Z, ,'off'),...=anova1(Z,'off')...idk what to do...what am i not getting?

로그인 to comment.


bym 님의 답변 9 May 2013

c=19;
% D=[];
p = zeros(c,1); % preallocate
for k=1:c;
Z=[X(:,1),Y(:,1)];
p(k)=anova1(Z);
%D=save(p) unecessary
%X(:,1)=[];Y(:,1)=[]; don't change X or Y!
end

  댓글 수: 2

but if i don't remove the cloumns from X and Y won't i just get the same answer 19 times...how do i tell matlab to move to the next set of elements in A and B???
...and thanks for your input and time...only 8 weeks on matlab...be gentle

로그인 to comment.



Translated by