How to store multiple column vector generated from a for loop?

조회 수: 12 (최근 30일)
Mr. 206
Mr. 206 2018년 11월 12일
편집: Stephen23 2018년 11월 12일
I have a function called func which returns A, B, C and D. This A, B, C, D each are 12 elements column vector. I am using this code
for delta = 0: 1: 40
[A,B,C,D] = func(delta);
end
Now after completing the for loop i will get 41 sets of A, B, C and D. How can i store them together?
I tried this
store = 0
for delta = 0: 1: 40
[A(store),B(store),C(store),D(store)] = func(delta);
end
But obviously there is an error like A(I) = X: X must have the same size as I. cause A is storing a 12 element column vector.

채택된 답변

Stephen23
Stephen23 2018년 11월 12일
편집: Stephen23 2018년 11월 12일
N = 41;
A = nan(12,N);
B = nan(12,N);
C = nan(12,N);
D = nan(12,N);
for k = 1:N
[A(:,k),B(:,k),C(:,k),D(:,k)] = fun(k-1);
end
This will give four matrices with all of the output data.
  댓글 수: 6
Mr. 206
Mr. 206 2018년 11월 12일
편집: Mr. 206 2018년 11월 12일
Great! A slight mistake in my `func` file.
Thanks
Can you help a bit more?
After completing the procedure for A there is 12 by N matrix. How can i find out the smallest value in each row of that matrix and if the smallest value is found for which delta is responsible for the the smallest value?
So that i can find a matrix A which is a 12 by 1 matrix comprised of all the smallest value in each row. And another 12 by 1 matrix which is comprised of the delta value responsible for those smallest values.
I hope my Question is clear. Again thanks for the previous help.
Stephen23
Stephen23 2018년 11월 12일
편집: Stephen23 2018년 11월 12일
"How can i find out the smallest value in each row of that matrix and if the smallest value is found for which delta is responsible for the the smallest value?"
[val,idx] = min(A,[],2)
delta(idx)

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

KSSV
KSSV 2018년 11월 12일
편집: KSSV 2018년 11월 12일
clc; clear all ;
iwant = zeros(4,12,40) ;
for delta = 1: 40
[A,B,C,D] = func(delta);
iwant(:,:,delta) = [A B C D] ;
end
Note that MATLAB index starts from 1 not zero.
  댓글 수: 6
KSSV
KSSV 2018년 11월 12일
YOu should check your function output...
Mr. 206
Mr. 206 2018년 11월 12일
Thanks! It was my Mistake. Thanks for your help

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by