有没有一种方法可以循环使用MATLAB的内置矩阵(图库)?

有没有一种方法可以循环使用MATLAB的内置矩阵(图库)?,matlab,matrix,Matlab,Matrix,matlab中有许多内置测试矩阵,由gallery函数调用,该函数需要一个带有矩阵名称的字符串。有没有一种方便的方法来获取所有内置矩阵的列表,或者有没有另一种方法来循环所有这些矩阵 通过查看gallery的源代码,基本上有一个大的case语句来检查您在函数中输入的名称。因此,无法通过编程方式提取所有名称。你将不得不复制和粘贴这些名字,然后自己得到它们。然而,因为我感觉很好,我决定浏览一下这个列表并将其编译成一个单元格数组。以下是单元格数组格式的列表: listNames = {'binomial

matlab中有许多内置测试矩阵,由gallery函数调用,该函数需要一个带有矩阵名称的字符串。有没有一种方便的方法来获取所有内置矩阵的列表,或者有没有另一种方法来循环所有这些矩阵

通过查看gallery的源代码,基本上有一个大的case语句来检查您在函数中输入的名称。因此,无法通过编程方式提取所有名称。你将不得不复制和粘贴这些名字,然后自己得到它们。然而,因为我感觉很好,我决定浏览一下这个列表并将其编译成一个单元格数组。以下是单元格数组格式的列表:

listNames = {'binomial','chebspec','clement','cycol','dramadah','gearmat',...
     'frank','gallery3','gallery5','gcdmat','grcar','invol','ipjfact',...
     'lehmer','lesp','lotkin','minij','neumann', 'orthog', ...
     'parter','poisson','redheff','riemann','rando','ris','smoke', ...
     'wathen','wilk', 'cauchy','invhess','leslie', 'chebvand', ...
     'chow','forsythe','kahan','compar','house','qmult','randhess', ...
     'condex','randjorth', 'circul','fiedler','randcorr','randcolu','sampling', ...
     'dorr','hanowa','jordbloc','kms','lauchli','moler','pei',...
     'prolate','randsvd','triw', 'krylov', 'toeppd', 'toeppen', 'tridiag', ...
     'normaldata', 'uniformdata', 'integerdata'};

%// Sort alphabetically just for kicks
listNames = sort(listNames);
每种类型的矩阵都有不同的参数,所以这将取决于您来确定这些参数,但是gallery所采用的所有名称都在上面的单元格数组中。因此,您只需通过以下方式访问第k个名称:


每个测试矩阵都与文件夹toolbox/matlab/elmat/private中的filename.m相关联

您可以列出测试矩阵的名称

filestrct = dir([matlabroot filesep 'toolbox' filesep 'matlab' filesep 'elmat' filesep 'private' filesep '*.m']);
filenames = {filestrct.name}';
testmat = cellfun(@(x) x(1:end-2), filenames, 'UniformOutput', 0);
它将为您提供一个名称的单元格数组。每个元素都可以通过

 testmat{k}

似乎是说您必须从提供的列表中手动选择。但是他们没有指定从Matlab.Nice获取信息的方法。没有想到检查MATLAB目录。我只是决定复制并粘贴这些名称,然后手动将它们放入单元格数组中。
 testmat{k}