如何从matlab中创建新结构?

时间:2012-09-19 20:58:36

标签: windows matlab

我的结构stations包含字段namecode。 例如:

stations = struct(...
    'name',{'a','b','c','d'},...
    'code',{[0 0],[0 1],[1 0],[1 1]}) 

(我将更改此结构,添加新的电台名称和代码等) 我想制作新的结构sessions',其中还有namecode字段,但值是两个电台的组合?

例如:

stations = struct(...
    'name',{'ab','ac','ad','bc','bd','cd'},...
    'code',{[0 0 0 1],[0 0 1 0],[0 0 1 1],[0 1 1 0],[0 1 1 1],[1 0 1 1]}).

我正在尝试这样的事情:

for i=1:numberOfStations-1
    for j=i+1:numberOfStations
        strcat(stations(i).name,stations(j).name);
        cat(2,stations(i).code,stations(j).code);
    end 
end

但我不知道把这些值放到哪里。

1 个答案:

答案 0 :(得分:0)

您拥有的struct是一个结构数组,因此您可以访问每个元素,如:

stations(1)

ans = 

    name: 'a'
    code: [0 0]

然后是特定元素和成员

stations(2).name

ans =

b

如果要添加到结构中,可以执行以下操作:

stations(end+1) = struct('name','hi','code',[1 1]);

如果要将新的结构数组合并到当前结构:

% current struct array, stations
% new data, new_station_data
for ii=1:length(new_station_data)
    station(end+1) = new_station_data(ii);
end

希望这有帮助!