删除结构

时间:2013-07-23 11:20:18

标签: matlab

我正在编程GUI,我有一个变量结构,如:

bin: 0.2000
Logical1: 0
Logical2: 0
Matrixraw: {[1x1 struct]  [1x1 struct]}
Matrixfiltered: {[1x1 struct]  [1x1 struct]}
Matrixcorrected: {[1x1 struct]  [1x1 struct]}

每个输入文件都有自己的矩阵。在这种情况下,我们有两个输入文件,因为每个Matrix都有两个结构。如果我们把3个输入文件放在3个结构上,依此类推。

我想创建一个给出一个索引1,2,3的按钮,从Matrix结构中删除第i个组件。所以,如果你键入2,它将删除矩阵的第二个组成部分并给出:

bin: 0.2000
Logical1: 0
Logical2: 0
Matrixraw: {[1x1 struct]}
Matrixfiltered: {[1x1 struct]}
Matrixcorrected: {[1x1 struct]}

感谢。

2 个答案:

答案 0 :(得分:1)

如果要删除结构成员:

Matrixraw = struct('field1', 1, 'field2', '2')

Matrixraw = 

    field1: 1
    field2: 2

// delete first element of structure
Matrixraw(1) = []

Matrixraw = 

    field1: []
    field2: []

下面的语法将清空结构并完全删除您的变量数据:

// both works
Matrixraw = {}

Matrixraw = []

答案 1 :(得分:0)

这是一种简单的方法。 假设你有这个:

Matrixfiltered= {[1 2],  {}, 4}

现在我们要删除第二个:

Matrixfiltered(2) = []

现在你有了这个:

Matrixfiltered= {[1 2], 4}

试一试!