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 个评论

Can you please clarify you are asking for?
the code snippet you shared:
c=19;
D=[];
for k=1:c;
Z=[X(:,1),Y(:,1)];
p=anova1(Z)
D=save(p)
X(:,1)=[];Y(:,1)=[];
end
does not have a clear intent. There is a FOR loop, but you are not using the looping variable k anywhere in the loop.
Also, I am not sure what you mean by save, or 1 variable matrix.
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

请先登录,再进行评论。

 采纳的回答

% 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?

请先登录,再进行评论。

更多回答(1 个)

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

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by