cell to double problem for loop includes cellarrays.

2 Ansichten (letzte 30 Tage)
sermet
sermet am 23 Mai 2014
Beantwortet: Andrei Bobrov am 23 Mai 2014
A=[1 1;2 2;3 3;4 4;5 5;6 6;7 7;8 8;9 9;10 10;11 11;12 12;13 13]
B=[3;4;3;3]
C=[1;2;3;4;5;6;7;8;9;10;11;12;13]
for k = 1 : length(B)
if k == 1
row1 = 1
else
row1 = 1 + sum(B(1:k-1))
end
row2 = sum(B(1:k))
x{k} = A(row1:row2, :)
y{k}= C(row1:row2, 1)
end
%I wanna add (inv(x'*x)*x'*y) for each k into loop. Problem is x and y are cell in the loop.

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 23 Mai 2014
Replace x by x{k}
inv(x{k}'*x{k})*x{k}'*y{k}

Weitere Antworten (1)

Andrei Bobrov
Andrei Bobrov am 23 Mai 2014
xc = mat2cell(A,B,size(A,2));
yc = mat2cell(C,B,size(C,2));
out = cellfun(@(a,b)(a'*a)\a'*b,xc,yc,'un',0);

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by