emptying each row of matrix of a in a loop then uses respective matrices produced from it to get a certain value

1 回表示 (過去 30 日間)
I have a matrix, a
a = [1 2;
1 3;
1 5;
1 7;
1 8;];
and this matrix a, is emptied in each row per loop until the last one using this code from Matt J
a0=a;
for i=1:size(a,1)
a=a0;
a(i,:)=[],
end
which result in:
a = [1 3;
1 5;
1 7;
1 8;];
a = [1 2;
1 5;
1 7;
1 8;];
a = [1 2;
1 3;
1 7;
1 8;];
a = [1 2;
1 3;
1 5;
1 8;];
a = [1 2;
1 3;
1 5;
1 7;];
can I create another loop to calculate a certain value, w, from the results from each loop beginning with the orginal until the last one. After each loop answer value, w, is tabulated in matrix b
b = [w
w
w
w
w
w]
there 6 values of w since we consider the orginal a
  4 件のコメント
JL
JL 2019 年 8 月 22 日
for i=1:size(a,1)
a=a0;
a(i,:)=[],
% work with matrix a here
end
This code actually works but it doesnt save the values from this loop into another matrix
David Hill
David Hill 2019 年 8 月 22 日
How about,
preallowcating array b = zeros(size(a,1)-1,2,size(a,1));
and having the following in the loop
b(:,:,i)=a;

サインインしてコメントする。

採用された回答

Matt J
Matt J 2019 年 8 月 22 日
編集済み: Matt J 2019 年 8 月 22 日
Why not as follows,
b=nan(size(a,1),1); %pre-allocate
for i=1:size(a,1)
tmp=a;
tmp(i,:)=[],
b(i)=max(tmp(:))-min(tmp(:)); %example derived quantity
end
  5 件のコメント
David Hill
David Hill 2019 年 8 月 22 日
best to pre-allowcate as Matt discribed. you could b=[]; outside loop and b=[b,w];inside loop. Matt's solution works best.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by