How to repeat rows in fields of structure
13 次查看(过去 30 天)
显示 更早的评论
The existing strucure has to be expanded along rows of fields. The actual structure contains many fieldsnames and rows in them.
s.a=[1;2;3];
s.b=[9 1; 5 4; 3 7];
The rows have to be repeated to certain number of rows say 53.
I have used arrayfun and repmat, but error of size mismatch is shown.
Without use of for loop, how is it possible.
0 个评论
采纳的回答
Guillaume
2018-11-21
编辑:Guillaume
2018-11-22
Note that practically, there is no difference between arrayfun, structfun, etc. and a loop. If anything, arrayfun can be slower than a loop.
I suspect that what you want is structfun which applies the same function to each field of the structure:
news = structfun(@(fld) repmat(fld, 53, 1), s, 'UniformOutput', false)
4 个评论
Guillaume
2018-11-22
Sorry yes, I changed the name of the variable midway through the function. I must have been tired when I wrote that answer.
I'm not actually sure I understood what you actually want to do with each field. I thought you wanted to replicate the rows 53 times. If that's not what you want to do, you need to change the body of the function used in structfun to do what you actually want to do.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Structures 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!