使用 Matlab 创建块 table 时遇到困难

struggle when creating a block table with Matlab

我正在尝试创建一个函数,该函数可以使用 struct 创建一个块 table,其中包含它们的 Handle、FullName、BlockType、Parent。但是,每次我输入型号名称时,它都会显示

Error using struct
Field names must be non-empty character vectors or a string scalars.

Error in createBlockTable (line 10)
          tableStruct = struct(get(i), 'Name');

这是我的代码

function blockTable = createBlockTable(modelName)
    load_system(modelName);

    getBlock = find_system(modelName, 'FindAll', 'on', 'FollowLinks', 'on', 'LookUnderMasks', 'all', 'Type', 'Block');
    
    blockCell = cell(1,length(getBlock));

    for n = 1:length(getBlock)
       for i = getBlock(n, 1)
          tableStruct = struct(get(i), 'Name');
       end
    end
    
    blockTable = assign(tableStruct, blockCell); 
end

我真的很困惑 i = getBLock(n,1)。我想我只是搞砸了那行的东西。但是我不知道如何解决这个问题。请帮忙,谢谢

更新#1
一天后,我设法以某种方式解决了它,但我不知道如何将 for 循环中的所有结构放入一个空单元格

function blockTable = createBlockTable(modelName)
    load_system(modelName);

    getBlock = find_system(modelName, 'FindAll', 'on', 'FollowLinks', 'on', 'LookUnderMasks', 'all', 'Type', 'Block');
  
    blockCell = cell(1, length(getBlock));
    
    for n = 1:length(getBlock)
        structTable = struct('Handle', get(getBlock(n), 'Handle'), 'Name', get(getBlock(n), 'Name') );
    end 
        
end

经过一天的时间,我解决了这个问题:

copyModel = 'sldemo_fuelsys_copy';

blockTable = makeTable(copyModel);

save('blockTable.mat','blockTable');

function blockTable = makeTable(modelName)

    load_system(modelName);

    getBlock = find_system(modelName, 'FindAll', 'on', 'FollowLinks', 'on', 'LookUnderMasks', 'all', 'Type', 'Block');
  
    blockCell = cell(1, length(getBlock));
    
    for n = 1:length(getBlock)
    
        structTable = struct('Handle', get(getBlock(n), 'Handle'), 'Name', ... 
        get(getBlock(n), 'Name'), ...
        'Block_Type', get(getBlock(n), 'BlockType'), ...
        'Parent', get(getBlock(n), 'Parent') );
        
        blockCell{1, n} = structTable;
    
    end 
    
    blockTable = blockCell;

end

对于我的问题,主要是我坚持如何为模型中的所有块创建打击,所以我修复并使用 for 循环来完成它,我还将我的结构分配给在此早期创建的单元格代码。