标签: cell-array

如何在MATLAB中为单元数组的元素分配空矩阵?

我想操纵一个单元格数组,并使单元格数组的某些索引包含空矩阵[].我似乎无法弄清楚如何做到这一点:

>> yy=num2cell(1:10)

yy = 

  [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]

>> yy{1:2:end}=[]
??? The right hand side of this assignment has too few values to satisfy
 the left hand side.
>> yy(1:2:end) = []

yy = 

  [2]    [4]    [6]    [8]    [10]
Run Code Online (Sandbox Code Playgroud)

呸! 似乎无法做我想做的事.我想在单元格数组中留下空元素,例如

  []    [2]    []    [4]    []    [6]    []    [8]    []    [10]
Run Code Online (Sandbox Code Playgroud)

有什么建议?我的索引向量可以是任意的,无论是索引形式还是布尔形式,都不一定是[1 3 5 7 9].

indexing matlab cell-array

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

删除单元格数组列

将简单值放入单元阵列中进行测试.

model{1,1}=1;model{1,2}=2;model{1,3}=3;
model{2,1}=4;model{2,2}=5;model{2,3}=6;
i=2;//I want to remove the second column

temp={  model{:,1:i-1} model{:,i+1:size(model,2)}  }
Run Code Online (Sandbox Code Playgroud)

我想要一个这样的结果:

temp =

[1]    [3]    
[4]    [6]
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个:

temp =

[1]    [4]    [3]    [6]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

ps:对于从事Cell Arrays工作的人来说,有一种很好的技术可以在这里附加.

matlab cell-array

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

将单元阵列输出到CSV文件(MATLAB)

我已经创建了amxn cell array cell(m,n),并使用任意字符串填充每个单元格.

如何将单元格数组输出为CSV文件,其中数组中的每个单元格都是CSV"电子表格"中的单元格.

我尝试过使用cell2CSV,但是我收到了错误......

Error in ==> cell2csv at 71
    fprintf(datei, '%s', var);
Run Code Online (Sandbox Code Playgroud)

引起:

Error using ==> dlmwrite at 114
The input cell array cannot be converted to a matrix.
Run Code Online (Sandbox Code Playgroud)

任何指导都会很好:)

csv file-io matlab cell-array

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

如何将正则表达式应用于Matlab中的单元格数组?

我在单元阵列RES与细胞3×2,它们中的每一个包含字符串。我想将regexp应用于每个单元格,它看起来应该像这样:

fin = cellfun(@regexp(res, '\.', 'split'),res,'UniformOutput',false)
Run Code Online (Sandbox Code Playgroud)

但是它不能完成任务。有人知道如何将其正确组合吗?

regex matlab cell-array

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

以方便,优雅和健壮的方式显示字符串的单元格数组

通常,我的函数包含一个包含少量有效选项的字符串参数.例如,它可能表示类似于最后一个参数的模式interp1.当用户传递的值不正确时,我想在错误消息中提供有效选项列表.

目前,我这样解决:

function out = my_func(mode)
valid_modes = {'rectangular', 'gaussian'};
switch mode
    case 'rectangular'
        % do something
    case 'gaussian'
        % do something else
    otherwise
        error(['atmlab:' mfilename ':invalid'], 'Invalid mode: %s. Valid modes: %s', mode, sprintf('%s ', valid_modes))
end
Run Code Online (Sandbox Code Playgroud)

我正在利用的技巧是sprintf可以采用单元格数组,然后输出多个字符串的串联.但是,这种行为似乎没有记录,从Matlab 2012b开始,Matlabs Code Analyzer已经开始警告这种用法sprintf.它仍然可以工作,但它可能不是一种受支持的方式,我不知道它将来是否会继续工作,所以我不愿意简单地忽略或取消警告.

另一个解决方案是使用evalc('disp(valid_modes)'),但这个解决方案让我呕吐.

如何方便,优雅地显示字符串单元格的值?

matlab cell-array

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

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

我在Strings中做了一些操作.我在XI中有一个字符串'AGCT',使用以下命令将其保存在一个单元格中

y(1,1)={x};
Run Code Online (Sandbox Code Playgroud)

现在它存储在一个单元格中.现在我想分别从字符串中取出每个字母.我想首先取A到G,依此类推.在这种情况下,单元阵列转换是必要的.那么如何将单元格内容再次转换回字符串?

string matlab cell-array

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

什么是MATLAB-ish方法"直方图化"一个排序的单元格数组?

假设我运行了7/11,并且100x3按照第一列时间排序的以下单元格数组是我的销售记录.

12:32:01 customer1 12
12:32:02 customer2 13
12:32:04 customer6 4
12:32:06 customer8 6
12:32:07 customer1 9
12:32:07 customer1 6
12:32:12 customer2 1
...
Run Code Online (Sandbox Code Playgroud)

正如您所注意到的,每个客户都可以多次购物.例如,客户1实际上做了三种不同的付款

我现在想计算每个客户的平均付款额. 例如,让我们假设客户1只进行了3次付款,如上所示.然后,他的平均付款将是(12+9+6)/3=9.

我当然可以写一个for循环来循环遍历所有条目并保持每个客户的轨道.但是,我觉得这不是用MATLAB完成的.

那么完成任务的MATLAB最简单的方法是什么?

matlab cell-array

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

如何找到包含至少一个向量B的元素的单元格A的向量?

如何找到A包含至少一个向量元素的向量B

例:

A = {[2 5],[8 9 2],[33 77 4],[102 6],[10 66 17 7 8 11],[110 99],[1 4 3],[15 41 88]}

B = [5 77 41 66 7]

Result = {[2 5],[33 77 4],[10 66 17 7 8 11],[15 41 88]}
Run Code Online (Sandbox Code Playgroud)

matlab vector cell cell-array

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

根据另一行中的字符串平均一行单元格数组

我有这个单元格数组:

times = {'plot'      'plot'      'plot'      'plot'      'plot'      'hist'      'plot'      'plot'      'plot'      'plot'  ;
         [0.0042]    [0.0026]    [0.0032]    [0.0054]    [0.0049]    [0.0106]    [0.0038]    [0.0026]    [0.0030]    [0.0026]}
Run Code Online (Sandbox Code Playgroud)

现在我想为第一行中的每个类型创建一个平均值,并将其保存到一个新的单元格,如下所示:

result = {'hist'      'plot'  ;  
          [0.0106]    [0.0036];
          [     1]    [     9]}
Run Code Online (Sandbox Code Playgroud)

第一行是类型,第二行是平均值,第三行是元素数.

我用这段代码解决了我的问题:

labels = unique(times(1,:));
result = cell(3,numel(labels));

for i = 1 : numel(labels)
    result(1,i) = labels(i);
    times2avg = cell2mat(times(2,strcmp(times(1,:), labels(i))));
    result{2,i} = mean(times2avg);
    result{3,i} = numel(times2avg);
end
Run Code Online (Sandbox Code Playgroud)

我现在的问题是我的问题是否有更简单或更理想的解决方案.

matlab grouping average cell-array

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

从结构的多个字段中提取行

创建列向量(100行)的结构(25个字段).如何提取其特定行.例如,

s.a=[1 2 3 4 5 6]'
s.b=[5 2 8 1 0 4]'
s.c=[9 7 0 1 3 5]'
% 2 to 4 rows to be extracted
% expected output
t.a=[2 3 4]'
t.b=[2 8 1]'
t.c=[7 0 1]'
Run Code Online (Sandbox Code Playgroud)

对struct的索引不起作用.什么是通用的方式.

indexing matlab struct reference cell-array

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

标签 统计

cell-array ×10

matlab ×10

indexing ×2

average ×1

cell ×1

csv ×1

file-io ×1

grouping ×1

reference ×1

regex ×1

string ×1

struct ×1

vector ×1