首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用逻辑索引初始化具有可变长度的多个单元格数组吗?

我可以用逻辑索引初始化具有可变长度的多个单元格数组吗?
EN

Stack Overflow用户
提问于 2015-04-08 14:51:00
回答 1查看 53关注 0票数 0

我有一个持久的单元格数组,在一个单元格中应该有一个三维数组,其中从lookUp数组中选择页面数。我希望单元格被逻辑数组索引,希望多维数组中的页数(第3维)由同一个逻辑数组来选择。我试图避免使用for循环,因为元素的数量非常多。

有办法吗?由于最大页数为8,我正在考虑放弃,只为所有数组分配8页。

代码语言:javascript
复制
%elements is a list of indexes
elements = 1:5;
%notInitialized is a logical stating that the cell of a element should be
notInitialized = logical(elements>2);
%initialized in the cell array cValuesSaved
lookUpOfNumberofPages = 4:8;

%persistent cValuesSaved
cValuesSaved = cell(numel(elements), 2); % two cells per elements

%I am not good at matlab, but my guess the code I want should look something like this:
cValuesSaved{notInitialized, 1} = nan(4, 2*3, lookUpOfNumberofPages(notInitialized));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 15:29:18

所以我解决了,如果你想的话,这就是我的解决方案。创建a1、a2、a3并不是最漂亮的方法,但我很着急。

感谢那些看了一眼的人!

代码语言:javascript
复制
array = nan(numel(elements), 3);
array(:,1) = 4;
array(:,2) = 2*3;
array(:,3) = lookUpOfNumberofPages;
a1 = array(:,1);
a2 = array(:,2);
a3 = array(:,3);

test2 = arrayfun(@nan, a1, a2, a3, 'UniformOutput', 0);
cValuesSaved(notInitialized,1) = test2(notInitialized);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29518108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档