multiple area access in cells
3 次查看(过去 30 天)
显示 更早的评论
dear ladies and gentlemen,
i have got another question. if i have a cell of arrays, e.g. ...
>> D(:,1)
ans =
[3x3 double]
[3x3 double]
[3x3 double]
and every cell element (in this case arrays) containes double values like the first cell element does, ...
>> D{1}
ans =
0.118997681558377 0.340385726666133 0.751267059305653
0.498364051982143 0.585267750979777 0.255095115459269
0.959743958516081 0.223811939491137 0.505957051665142
what comprehensible gives same result as , ...
>> D{1,1}
well! and if have another cells of arrays, let us say e.q.: ...
A =
[3x3 double]
[3x3 double]
[3x3 double]
with arrays like this: ..
>> A{1}
ans =
6 5 2
8 1 8
9 1 2
how can i reference my cells to rewirte e.q. every element in cell D and its every first column with first column of A, and
while doing so at the best without a loop or an if.
first, i thought on the colon operator, but i cant handle it. instead of allocate cell element by element with ..
>> D{1}(:,1)=A{1}(:,1)
>> D{2}(:,1)=A{1}(:,1)
a.s.o.
i tried ...
>> D{:}(:,1)=A{1}(:,1)
and
>> D{1:3}(:,1)=A{1}(:,1)
without success.
can someone help me =) please
regards
1 个评论
madhan ravi
2019-1-30
attach the data as .mat file so that it's pretty clear how the cells are arranged
采纳的回答
Guillaume
2019-1-30
If you want to keep your data as cell arrays you don't have a choice but to use an explicit loop:
for i = 1:numel(D)
D{i}(:, 1) = A{i}(:, 1);
end
However, since the matrices in your cell arrays are all the same size, you would be better off storing the whole lot as a 3D matrix. It's much easier to work with 3D matrices than cell arrays of 2D matrices. In particular, you could indeed do the copy in just one line
%convert cell array of 2D matrices into 3D matrix:
D = cat(3, D{:});
A = cat(3, A{:});
%replace 1st column of each page:
D(:, 1, :) = A(:, 1, :);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
