标签: cell-array

将元胞数组的内容作为单独的输入参数传递给 MATLAB 中的函数

我在 MATLAB 中有一个元胞数组,例如A{1}, A{2}, A{3},...., A{561}。我想将它传递给函数参数,例如:

horzcat(A{1}, A{2}, ..., A{561})
Run Code Online (Sandbox Code Playgroud)

显然,这是一种昏昏欲睡的方式来写入所有单元格。做到这一点的捷径是什么?

我已经尝试过了,horzcat(A{1}:A{561})但它不起作用。

arrays matlab arguments function cell-array

5
推荐指数
1
解决办法
580
查看次数

在MATLAB中将数字转换为单元格数组中的字符串

我有一个包含数字和字符串数据的单元格数组.我需要将数字转换为字符串,以便我可以使用该unique()函数.

a = {1; 4; 'lf'}
result --> {'1', '4', 'lf'}; % Now unique() function can be used
Run Code Online (Sandbox Code Playgroud)

有在线解决方案来处理列是数字的情况.但这些不能在这里使用,因为至少有一行有字符串作为数据.应该理解矢量化解决方案.

string matlab type-conversion cell-array

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

在Matlab中使用空元素对Cell数组进行排序

我在Matlab中有一个单元格数组DataVal,我想对它进行排序.数组中的某些元素是空的.知道如何对这个单元格数组的元素进行排序.排序时,我更喜欢在排序数组的开头或结尾处的空元素.

DataVal

ans = 

    []
    [ 82.1000]
    [ 16.1500]
    [ 56.0200]
    []
    [ 74.9600]
    [ 35.1400]
Run Code Online (Sandbox Code Playgroud)

我用过sortsortrows.这两个命令似乎都忽略了空元素.

谢谢

arrays sorting matlab cell-array

4
推荐指数
1
解决办法
310
查看次数

如何在更大的单元阵列中选择每个单元阵列的第二个元素?

输入

hhh={{1,11},{2,22},{3,33},{4,44}}
Run Code Online (Sandbox Code Playgroud)

预期输出

11 22 33 44
Run Code Online (Sandbox Code Playgroud)

PS hhh{1}{2},hhh{2}{2},hhh{3}{2}hhh{4}{2}返回正确的输出,但我试图找到如何做到这一点像hhh{:}{2}.

matlab cell-array

4
推荐指数
1
解决办法
3195
查看次数

MATLAB到C代码

我正在按照MathWorks指南将MATLAB代码转换为C代码.第一步是进入

%#代码生成

在我想要转换为C代码的每个函数之后,这样做会给我以下代码提示如下.

function lanes=find_lanes(B,h, stats)
% Find the regions that look like lanes
%#codegen

lanes = {};
l=0;
    for k = 1:length(B)
    metric = stats(k).MajorAxisLength/stats(k).MinorAxisLength;
    %testlane(k);
    %end
    %function testlane(k)
        coder.inline('never');
        if metric > 5 & all(B{k}(:,1)>100)
            l=l+1;
            lanes(l,:)=B(k);
        else
            delete(h(k))
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

在花括号周围:

代码生成仅支持"varargin"和"varargout"的单元操作

另一个提示说

代码生成不支持通过索引进行变量"通道"大小增长

其中泳道提到第二次.

该函数的输入参数是:

-是对输出的的bwboundaries图像处理工具箱功能.它是一个P-by-1单元阵列,其中P是对象和孔的数量.单元阵列中的每个单元包含Q-by-2矩阵.矩阵中的每一行包含边界像素的行和列坐标.Q是相应区域的边界像素数.

h - 绘制具有绿色轮廓的对象的边界,同时是大小为1 X长度(B)的矩阵,保持边界的值如下所示:

h(K)=plot(boundary(:,2), boundary(:,1), 'g', 'LineWidth', 2);//boundary(:,1) - Y coordinate, boundary(:,2) - X coordinate.
Run Code Online (Sandbox Code Playgroud)

stats - 使用图像处理工具箱中的regionprops …

c matlab cell-array codegen

4
推荐指数
1
解决办法
1923
查看次数

如何根据订单编号字符串

我在matlab中有一个字符串的单元格数组.有些字符串可能相同.我想用字典方式对字符串进行编号.

例如,如果我有{'abc','aty','utf8','sport','utf8','abc'},在输出中我想得到数组[1, 2, 4, 3, 4, 1].

你能给我任何方法吗?

sorting string matlab cell-array

4
推荐指数
1
解决办法
70
查看次数

Matlab单元格字符串数组:查找重复的字符串并操纵相应的数据

我有一大组数据(约100万个条目),存储为具有多列和多行的单元格.我的问题是我需要识别同时发生的条目,然后操纵其他列,以便删除重复日期的行而不会丢失所有信息.

可以如此初始化这种数据的子集的示例;

data = {'10:30', 100; '10:30', 110; '10:31', 115;'10:32', 110}
Run Code Online (Sandbox Code Playgroud)

也就是说,我有一个带有一列字符串(表示时间)的单元格,以及另一列(实际数据中有很多)的双精度单元格.

我的代码应该注意重复的10:30(可能有很多这样的重复),然后能够接受相应的双精度(100和110)作为某些函数的输入f(100,110),然后从中删除重复的行数据.

也就是说,如果函数是平均值,那么我应该有一个类似的输出

data =
       '10:30' [105]
       '10:31' [115]
       '10:32' [110]
Run Code Online (Sandbox Code Playgroud)

如果循环足够快,这将非常简单,但是对于我的数据集,即使尝试涉及循环的解决方案也没有意义.

我已经到了

[uniqueElements, firstUniquePosition, commonSets] = unique(data(:,1));
Run Code Online (Sandbox Code Playgroud)

经过多次摆弄后,会产生一些看似有用的信息,

uniqueElements = 

    '10:30'
    '10:31'
    '10:32'

firstUniquePosition =

     1
     3
     4

commonSets =

     1
     1
     2
     3
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何制作一个矢量化语句,允许我操纵具有常见日期的元素.

我想它会涉及cellfun某些方面,但我不知道matlab的功能是否足以实现它而没有朝着正确的方向发展.

string matlab unique-index cell-array

4
推荐指数
1
解决办法
213
查看次数

MATLAB中函数数组的矢量化或单行评估

在上一个问题中,用户询问迭代匿名函数的单元格数组.我想知道是否有办法在没有明确使用for循环的情况下评估一组函数.

例如,以下代码创建一个(简单)函数数组,对它们求值以获得固定值并存储结果:

fcnList = {@(x) (x+1), @(x) (x+2)};
a = 2;
for i = 1:numel(fcnList)
    y(i) = fcnList{i}(a);
end
Run Code Online (Sandbox Code Playgroud)

有没有办法在没有循环的情况下做到这一点?

matlab vectorization cell-array

4
推荐指数
1
解决办法
121
查看次数

MATLAB:如何检查元胞数组中是否已存在元胞元素?

你好 stackoverflow 社区,

我有一个元胞数组 Q,5520x1 元胞数组,它由如下数组组成,例如:

K>> Q{1}

答案=

 0     3     1    84
Run Code Online (Sandbox Code Playgroud)

等等。

我真的很想知道,如何检查元胞数组的元素(如上面的)是否已存在于 Q 中?因为如果它确实存在,我不会添加任何内容,但如果是,我必须将此元素添加到 Q 的末尾。如何正确完成此检查?当然,如果可能的话,简短的解决方案将更受赞赏。

提前感谢您抽出时间,尼克

matlab cell cell-array

4
推荐指数
1
解决办法
4283
查看次数

MATLAB:如何使用带有结构的cellfun?

想象一个由相同结构(在布局方面)组成的单元阵列,如下例cellArray所示.我如何申请cellfun这些结构的特定领域?

cellArray{1,1}.val1 = 10;
cellArray{1,1}.val2 = 20;
cellArray{1,2}.val1 = 1000;
cellArray{1,2}.val2 = 2000;
Run Code Online (Sandbox Code Playgroud)

如何使用cellfun将值50添加到所有单元格,但仅添加到字段val2

out = cellfun(@plus, cellArray?????, {50, 50}, 'UniformOutput', false);
Run Code Online (Sandbox Code Playgroud)

matlab struct cell-array

4
推荐指数
1
解决办法
256
查看次数