标签: cell-array

在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
查看次数

如何根据订单编号字符串

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

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

你能给我任何方法吗?

sorting string matlab cell-array

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

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单元阵列的大小远远大于实际数据

我最近发现了一种奇怪的MATLAB单元阵列行为,以前没有发生过.

如果我创建一个单元格数组

a=cell(1,4)
Run Code Online (Sandbox Code Playgroud)

它的大小是32个字节.

如果那时我把东西放在里面,比如说

a{2}='abcd'
Run Code Online (Sandbox Code Playgroud)

它的大小变为144字节.但如果我通过放置删除此内容

a{2}=[]
Run Code Online (Sandbox Code Playgroud)

大小变为132字节,依此类推.问题是什么?

matlab cell-array

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

如何在MATLAB中的循环中创建/处理变量?

我需要计算一些变量的均值,标准差和其他值,我想知道如何使用循环来获得优势.我有5个数据电极.所以要计算每个的平均值,我这样做:

mean_ch1 = mean(ch1);  
mean_ch2 = mean(ch2);  
mean_ch3 = mean(ch3);  
mean_ch4 = mean(ch4);  
mean_ch5 = mean(ch5);  
Run Code Online (Sandbox Code Playgroud)

我想要的是能够将代码压缩成一行左右.我试过的代码不起作用:

for i = 1:5  
  mean_ch(i) = mean(ch(i));  
end
Run Code Online (Sandbox Code Playgroud)

我知道这段代码是错误的,但它传达了我想要完成的想法.我想最终得到5个由循环命名的独立变量或一个包含所有5个变量的单元数组,以便于调用.我知道必须有一种方法来编写这段代码我只是不知道如何实现它.

variables matlab loops cell-array

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

Matlab:查找单元格中重复次数最多的值(修订版)

对于我的代码,idxcell {:,1}进行1:10迭代得到以下结果:

ans =
         9    10    14    15    19    20    24    25
    ans =
      Columns 1 through 13
         7     8    11    12    13    14    16    17    18    19    21    22    23
      Column 14
        24
    ans =
        13    14    15    18    19    20    23    24    25
    ans =
         6     7    11    12    16    17    21    22
    ans =
        16    17    21    22
    ans =
         6     7    11    12    13    16    17    21
    ans =
         4     5     8     9    10    13    14 …
Run Code Online (Sandbox Code Playgroud)

matlab mode cell-array

3
推荐指数
1
解决办法
1555
查看次数

如何使用不断增加的数字初始化单元格数组

我怎么能用越来越多的数字初始化一个单元格数组?对于一个简单的数组,我可以做如下:

A = [1:0.0001:1.1]
Run Code Online (Sandbox Code Playgroud)

什么是单元格数组的等价物?我怎么能得到:

A = {'1', '1.0001', '1.0002', '1.0003', '1.0004', ...}
Run Code Online (Sandbox Code Playgroud)

编辑:

这是我到目前为止所尝试的:

cellfun(@(x) num2str(str2double(x)+0.0001), repmat({'1'},1,21), 'UniformOutput', false)
Run Code Online (Sandbox Code Playgroud)

但是,这给出了:

{'1.0001', '1.0001', '1.0001',...}
Run Code Online (Sandbox Code Playgroud)

arrays matlab cell-array

3
推荐指数
1
解决办法
1538
查看次数

单元格数组,为每个字符串添加后缀

假设我有一个包含字符串的单元格数组:

c = {'foo1', 'foo2', 'foo3'}
Run Code Online (Sandbox Code Playgroud)

我现在想为bar每个字符串添加相同的后缀" ",以便单元格数组变为:

c = {'foo1bar', 'foo2bar', 'foo3bar'}
Run Code Online (Sandbox Code Playgroud)

有这样做的快捷方式,没有显式循环每个元素?

string matlab text-processing cell-array

3
推荐指数
1
解决办法
971
查看次数

如何总结单元格数组中的所有数组(相同大小)?

例如,我有以下单元格数组:

a = [1,2,3; 1,5,8; 6,5,0; 0,0,2];
A = cell(3,4);
for i = 1:3
    for j = 1:4
        A{i,j} = (j-i)*a;
    end
end
Run Code Online (Sandbox Code Playgroud)

我如何总结所有元素,即A{1,1} + A{1,2} + ... + A{3,4}

arrays matlab sum cell cell-array

3
推荐指数
1
解决办法
79
查看次数