How to add value to tables (inside a cell) from the other array?
5 次查看(过去 30 天)
显示 更早的评论
Dear all
I have an array 1x4 (namely point) and a cell 1x4 (namely C). In the C I have 6x1 tables. I want to respectively copy the value of point as the second column of each table (first cell of point for the first array of C, second cell of point for the second array of C, and so on... In fact, each array of points repeat 6 times and paste into cell arrays.
I would be grateful if anyone can tell me how it is possible.
Thank you
0 个评论
采纳的回答
Image Analyst
2020-5-10
This will do it:
% Load 2 mat files:
s = load('c.mat')
c = s.C
s = load('point.mat')
p = s.point
% Now stitch p, as a column vector, onto
% the right side of each table in each cell.
for column = 1 : length(c)
% Get this table by extracting it from this cell of the cell array.
t = c{column}
% Make another column of 6 rows onto t.
% All 6 values in the second column will be 0 to start with.
t{end, 2} = 0;
% Fill up the first 4 rows of the second column
% of this table with p. Last 2 rows will remain 0.
t{1:length(p), 2} = p(:)
% Stuff new table back into the cell
c{column} = t;
end
3 个评论
Image Analyst
2020-5-11
Try it this way:
% Load 2 mat files:
s = load('c.mat')
c = s.C
s = load('point.mat')
p = s.point
% Now stitch p, as a column vector, onto
% the right side of each table in each cell.
for column = 1 : length(c)
% Get this table by extracting it from this cell of the cell array.
t = c{column};
% Make another column of 6 rows onto t.
% All 6 values in the second column will be 0 to start with.
t{end, 2} = 0;
% Fill up the first 4 rows of the second column
% of this table with p. Last 2 rows will remain 0.
t{:, 2} = p(column);
% Stuff new table back into the cell
c{column} = t;
end
更多回答(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!