标签: matlab-struct

MATLAB:从结构数组中收集

例如,输出>>w = whos;返回结构数组.我想构造一个数组,其元素是每个结构中特定字段名称的标量.

这样做最明显的方法并不是按照我的意愿返回数组,而是分别回答每个数组.

>> w(1:2).bytes
ans =
    64
ans =
   128
Run Code Online (Sandbox Code Playgroud)

我可以用循环来做,但是想知道是否有更好的方法.

arrays matlab matlab-struct

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

如何在MATLAB中重命名结构数组中的字段?

给定结构数组,如何重命名字段?例如,给定以下内容,如何将"bar"更改为"baz".

clear
a(1).foo = 1;
a(1).bar = 'one';
a(2).foo = 2;
a(2).bar = 'two';
a(3).foo = 3;
a(3).bar = 'three';
disp(a)
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法,"最佳"是性能,清晰度和一般性的平衡?

matlab field rename matlab-struct

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

有没有办法从MATLAB中的结构中删除除了几个所需的字段之外的所有字段?

所以我有几个结构包含使用的数据是十几个脚本.问题是,对于每个脚本,我只需要一些变量,其余的我可以忽略.我正在使用大量的数据(数据演出),MATLAB经常给我带来内存错误,所以我需要从结构中删除所有不必要的字段.

目前我有一个包含所有不需要的字段的单元格,然后我在结构上调用rmfield.但结构中的字段经常发生变化,不断更新不需要的字段列表变得很痛苦.那么有没有办法告诉MATLAB只保留我想要的那些字段并删除其他所有字段,即使我不知道其他什么是什么?

这是一个例子,

  • 结构1具有:A,B,C,D,E字段
  • 结构2具有:A,B,C,D,E,F场
  • 结构3具有:A,B,C,D,E,F,G,H,I场

有时,Struct 3可能只有A到G.

我想只保留A,B和C字段并从所有结构中删除所有其他数据.

matlab matlab-struct

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

索引/访问MATLAB嵌套结构

希望我不会创建重复项,但到目前为止,我没有找到解决我问题的正确答案。

假设我们具有以下结构:

a(1).b = 1;
a(1).x.y = 2;

a(2).b = 3;
a(2).x.y = 4;
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试获取b的所有值时,我可以这样做:

>> a(:).b

ans = 1
ans = 3
Run Code Online (Sandbox Code Playgroud)

但是如何使用嵌套结构.xy实现呢?

>> a(:).x.y
Run Code Online (Sandbox Code Playgroud)

期望从花括号或点索引表达式获得一个输出,但是有2个结果。

谢谢你的帮助...!

indexing matlab matlab-struct

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

如何在结构中放置结构

我刚开始使用Matlab,我绝对鄙视(或者不能正确理解)类型系统(或缺乏).

为什么这不起作用?我只想在结构中使用结构(在递归函数中)

    K>> d = struct('op',1,'kids',[])

    d = 

          op: 1
        kids: []

    K>> d.kids(1) = struct('op',2)
    Conversion to double from struct is not possible.
Run Code Online (Sandbox Code Playgroud)

我试过其他的东西,比如制作d=struct('op',1,'kids', struct([])),但似乎没什么用......

matlab matlab-struct

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

在Matlab中将struct转换为double类型

GLCM(特征提取方法)给我“结构”类型的输出,而我需要“双重”类型的输出。我需要一个“双精度”类型作为下一步的输入变量。

在此处输入图片说明

因此,我尝试使用下面显示的几个代码对其进行转换。

[gl] = glcm (B);
[gl] = struct2cell (gl);
[gl] = cell2mat (gl);
[fetrain] = double (gl);
Run Code Online (Sandbox Code Playgroud)

该代码给了我一个输出,但是它是'complex double'类型的。

在此处输入图片说明

有没有更好的方法可以将“ struct”转换为“ double”类型?

还是将“复杂双精度”转换为“双精度”类型?

任何帮助和建议,将不胜感激。谢谢。

double matlab struct matlab-struct

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

连接结构元素

例如

test = struct('one', [1;2;3], 'two', [4;5;6]);
Run Code Online (Sandbox Code Playgroud)

我想垂直连接结构中的向量test.例如,如果它被定义为单元格数组test = {[1;2;3], [4;5;6]},我可以这样做vertcat(test{:}).但是,如果是结构,则vertcat(test{:})返回struct对象test.

我想有一个解决方案,不涉及使用创建临时单元阵列struct2cell.

matlab matlab-struct

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

如何从MATLAB结构数组中删除空字符串

我有一个带有字段的MATLAB结构数组image_name.有几个条目在哪里

x(n).image_name = []
Run Code Online (Sandbox Code Playgroud)

(即,struct数组的第n行有一个image_name空的)

我想通过尝试一些方法来删除它们

idx = [x.image_name] == []
x(idx) = [];
Run Code Online (Sandbox Code Playgroud)

但无法获取空字符串的索引.我尝试的每个变体都会产生错误.

如何找到空字符串的行索引,以便删除它们?

arrays string matlab struct matlab-struct

0
推荐指数
1
解决办法
738
查看次数

将结构转换为矩阵MATLAB

有没有一种方法可以将结构(2个字段,每个字段具有52个变量)转换为矩阵(2x52)?谢谢

struct:

    sym (1x53)
    prob (1x53)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法,这给了我一个1 x 1的细胞阵列

symProb = reshape({x.sym}, size(53)); 
Run Code Online (Sandbox Code Playgroud)

我也尝试过struct2cell这样做。

matlab struct matrix matlab-struct

0
推荐指数
1
解决办法
6737
查看次数

标签 统计

matlab ×9

matlab-struct ×9

struct ×3

arrays ×2

double ×1

field ×1

indexing ×1

matrix ×1

rename ×1

string ×1