我在Matlab中有一个单元格数组DataVal,我想对它进行排序.数组中的某些元素是空的.知道如何对这个单元格数组的元素进行排序.排序时,我更喜欢在排序数组的开头或结尾处的空元素.
DataVal
ans =
[]
[ 82.1000]
[ 16.1500]
[ 56.0200]
[]
[ 74.9600]
[ 35.1400]
Run Code Online (Sandbox Code Playgroud)
我用过sort和sortrows.这两个命令似乎都忽略了空元素.
谢谢
我在matlab中有一个字符串的单元格数组.有些字符串可能相同.我想用字典方式对字符串进行编号.
例如,如果我有{'abc','aty','utf8','sport','utf8','abc'},在输出中我想得到数组[1, 2, 4, 3, 4, 1].
你能给我任何方法吗?
在上一个问题中,用户询问迭代匿名函数的单元格数组.我想知道是否有办法在没有明确使用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)
有没有办法在没有循环的情况下做到这一点?
你好 stackoverflow 社区,
我有一个元胞数组 Q,5520x1 元胞数组,它由如下数组组成,例如:
K>> Q{1}
答案=
0 3 1 84
Run Code Online (Sandbox Code Playgroud)
等等。
我真的很想知道,如何检查元胞数组的元素(如上面的)是否已存在于 Q 中?因为如果它确实存在,我不会添加任何内容,但如果是,我必须将此元素添加到 Q 的末尾。如何正确完成此检查?当然,如果可能的话,简短的解决方案将更受赞赏。
提前感谢您抽出时间,尼克
我最近发现了一种奇怪的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字节,依此类推.问题是什么?
我需要计算一些变量的均值,标准差和其他值,我想知道如何使用循环来获得优势.我有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个变量的单元数组,以便于调用.我知道必须有一种方法来编写这段代码我只是不知道如何实现它.
对于我的代码,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) 我怎么能用越来越多的数字初始化一个单元格数组?对于一个简单的数组,我可以做如下:
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) 假设我有一个包含字符串的单元格数组:
c = {'foo1', 'foo2', 'foo3'}
Run Code Online (Sandbox Code Playgroud)
我现在想为bar每个字符串添加相同的后缀" ",以便单元格数组变为:
c = {'foo1bar', 'foo2bar', 'foo3bar'}
Run Code Online (Sandbox Code Playgroud)
有这样做的快捷方式,没有显式循环每个元素?
例如,我有以下单元格数组:
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}?