标签: cell-array

在MATLAB单元阵列中查找和过滤元素

我有一个列表(单元格数组)的元素与这样的结构:

mystruct = struct('x', 'foo', 'y', 'bar', 's', struct('text', 'Pickabo'));
mylist = {mystruct <more similar struct elements here>};
Run Code Online (Sandbox Code Playgroud)

现在我想为s.text =='Pickaboo'或其他预定义字符串的所有结构过滤mylist.在MATLAB中实现这一目标的最佳方法是什么?显然这对于​​数组来说很容易,但对于单元格来说,最好的方法是什么?

matlab filtering list cell-array

9
推荐指数
1
解决办法
2万
查看次数

MATLAB:比较字符串的单元格数组

我有两个字符串的单元格数组,我想检查它们是否包含相同的字符串(它们不必按相同的顺序排列,也不知道它们是否具有相同的长度).

例如:

a = {'2' '4' '1' '3'};
b = {'1' '2' '4' '3'};
Run Code Online (Sandbox Code Playgroud)

要么

a = {'2' '4' '1' '3' '5'};
b = {'1' '2' '4' '3'};
Run Code Online (Sandbox Code Playgroud)

首先我想到了,strcmp但它需要循环一个单元格内容并与另一个进行比较.我也考虑ismember使用类似的东西:

ismember(a,b) & ismember(b,a)
Run Code Online (Sandbox Code Playgroud)

但是我们事先并不知道它们的长度相同(显然是不平等的情况).那么,如果不编写过多的if/else案例,你将如何以最有效的方式进行这种比较.

string comparison matlab vectorization cell-array

8
推荐指数
2
解决办法
3万
查看次数

如何使用`cellfun`(MATLAB)应用具有多个参数的函数?

使用cellfun,如何将函数应用于函数创建的所有单元格mat2cell?我的函数在另一个文件中定义,这里引用它myFunc.该函数有两个参数,它们应该是一个单元格和一个整数.

例如 function H = myFunc(img,Q)

我的代码如下:

% Split into grid and process each cell
width = size(img,2) % get image width
height = size(img,1) % get image height
depth = size(img,3) % get depth
C = mat2cell(img,[height/2 height/2],[width/2 width/2],[depth/2 depth/2]); % divides image into sections
F = cellfun(@myFunc,C);
save(fout,'F');
Run Code Online (Sandbox Code Playgroud)

问题当然在于这条线F = cellfun(@myFunc,C);.如何myFunc为每个单元格传递单元格和选定的整数,例如4 ?

非常感谢.

matlab image-processing matrix divide cell-array

8
推荐指数
2
解决办法
4445
查看次数

考虑每行上所有可能的排列,找到单元格数组的唯一行

我有A维度的单元格数组m * k.

我想保持A唯一的行数达到k个单元格的顺序.

的"棘手"的部分是"高达K个小区的顺序":考虑k了在细胞中i的第i行A,A(i,:); 有可能是一个连续jA,A(j,:)即相当于A(i,:)达到它的重新排序k的细胞,这意味着,例如,如果k=4它可能是:

A{i,1}=A{j,2}
A{i,2}=A{j,3}
A{i,3}=A{j,1}
A{i,4}=A{j,4}
Run Code Online (Sandbox Code Playgroud)

我现在正在做的是:

G=[0 -1 1; 0 -1 2; 0 -1 3; 0 -1 4; 0 -1 5; 1 -1 6; 1 0 6; 1 1 6; 2 -1 6; 2 0 6; 2 1 6; 3 -1 6; 3 0 6; …
Run Code Online (Sandbox Code Playgroud)

performance matlab permutation cell-array

8
推荐指数
1
解决办法
380
查看次数

什么是Matlab单元阵列?

我是Python的新手,并尝试创建与Matlab的"单元阵列"相当的东西.假设我有100个客户索引"C001","C002"等,我为每个客户提供不同的数据:

  • 房屋面积(平方米)[实际数量]
  • 分类数据显示它们是"商业","住宅"还是"其他"
  • 2014年电力消耗的每小时时间序列,即8760个实际值的日期时间索引数组

在Python 2.7中构建数据集的最佳方法是什么,它结合了单值,分类数据和时间索引数组?我正在尝试使用大熊猫,但到目前为止还没有成功.

非常感谢你提前

python matlab cell-array

8
推荐指数
1
解决办法
2万
查看次数

结构和空单元格数组的MATLAB"bug"(或非常奇怪的行为)

我不知道这里发生了什么.我正在使用R2006b.在我提交错误报告之前,任何有新版本的人都可以测试他们是否得到相同的行为?

代码:( bug1.m)

function bug1
S = struct('nothing',{},'something',{});
add_something(S, 'boing');          % does what I expect
add_something(S.something,'test');  % weird behavior
end

function add_something(X,str)
    disp('X=');
    disp(X);
    disp('str=');
    disp(str);
end
Run Code Online (Sandbox Code Playgroud)

输出:

>> bug1
X=
str=
boing
X=
test
str=
??? Input argument "str" is undefined.

Error in ==> bug1>add_something at 11
    disp(str);

Error in ==> bug1 at 4
add_something(S.something,'test');
Run Code Online (Sandbox Code Playgroud)

看起来像空虚/虚无S.something允许它移动函数调用的参数.这看起来像非常糟糕的行为.在短期内我想找到它周围(我正在尝试创建一个函数,将项添加到最初为空的单元格数组,该数组是结构的成员).

编辑:

推论问:所以没有办法构造一个struct包含任何空单元格数组的文字?

matlab cell-array matlab-struct

7
推荐指数
1
解决办法
3054
查看次数

如何在MATLAB中连接属于单元格数组的单元格数组?

我有一个allDataNx1 的单元格数组.每个单元格都包含一个带有names属性的结构(名称是自定义对象,但如果您愿意,可将其视为字符串的单元格数组).我想创建一个包含所有名称的单个单元格数组.例如,如果N = 3,那么这allData是一个3x1单元格数组,那么以下内容将实现我的目标:

A = allData{1};
B = allData{2};
C = allData{3};

allNames = [A.names B.names C.names];
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于N很大并且根据输入而变化,所以我希望有一种聪明的方法可以使用cellfun,但是我尝试过的所有东西都失败了(例如它不起作用)allNames = [cellfun(@(x) {x.names}, allData)];).

更新:由于建议的解决方案,我可以将所有内容放入一个单元阵列中,其中每个单元包含一个单元阵列.我的目标是连接这些.或多或少,我所拥有的是:

{A.names B.names C.names} 
Run Code Online (Sandbox Code Playgroud)

我想要什么,似乎无法得到的是

{A.names{1} A.names{2} ... A.names{end} B.names{1} ... B.names{end} ...}
Run Code Online (Sandbox Code Playgroud)

解决方案:我需要以下每个答案的部分,所以这里有适合我的解决方案:

来自Andrew Lazarus:

allNames = arrayfun(@(x) x.name, [allData{:}], 'UniformOutput', false);

然后,从gnovice:

allNames = vertcat(allNames{:});

谢谢两个!!

matlab concatenation cell-array

7
推荐指数
1
解决办法
1万
查看次数

在matlab中连接单元格数组的向量

在matlab中,我有一个4x5单元阵列,其中每个单元由一个121x1向量组成.

什么是创建一个3-暗淡4x5x121矩阵避免了2倍环的最简单的方法.

matlab concatenation matrix cell-array

7
推荐指数
1
解决办法
2780
查看次数

如何在MATLAB中删除单元格数组中的零条目?

我在MATLAB中有一个单元数组,可以说它cell_arr有零条目以及非零单元条目.例如:

cell_arr = {0, 0, 0, 0, 0, {1x3 cell}, {1x3 cell}, {1x3 cell}, {1x3 cell}};
Run Code Online (Sandbox Code Playgroud)

有人可以告诉如何从cell_arr或删除这些零条目,以找到非零条目的索引?另外,我想避免for执行此作业的循环.

我已经尝试过find函数,但是,find函数不适用于单元格数组.我想知道是否存在执行此作业的单行语句/表达式?

matlab cell-array

7
推荐指数
1
解决办法
4164
查看次数

在嵌套的单元格单元中随机选择成员的位置:Matlab

我有一个嵌套的单元格细胞,如下所示:

CellArray={1,1,1,{1,1,1,{1,1,{1,{1 1 1 1 1 1 1 1}, 1,1},1,1},1,1,1},1,1,1,{1,1,1,1}};

我需要随机选择一个位置CellArray.所有成员的位置CellArray必须在随机选择过程中具有相同的机会.谢谢.

random matlab multidimensional-array cell-array

6
推荐指数
1
解决办法
96
查看次数