无法访问arrayfun的结果时UniformOutput是假
我试图使用nchoosek,以便把它应用到n阵列,n为用户无法访问arrayfun的结果时UniformOutput是假
function returnit = nchoosek2(array_length) f = @(x) nchoosek(1:1:(array_length+1),x);
t = 1:(array_length);
returnit = arrayfun(@(x)f(x),t,'UniformOutput',0);
end
它不返回错误的输入,但是当我尝试它,我得到包含n数组的数组
>> nchoosek2(5) ans =
[15x2 double] [20x3 double] [15x4 double] [6x5 double]
的问题是,我不能设法访问值INSIDE的阵列。我在MatLab的文档中搜索了这个案例,但没有提供关于如何访问这些值的线索。我只知道给出这种结果是因为每个数组的大小不一样。
你知道如何访问这些值吗?
回答:
你的函数的输出是一个单元数组,所以你需要使用大括号{}来访问数据。请检查here了解更多信息。
简单例如用3的array_length
:
A = nchoosek2(3) A =
[4x1 double] [6x2 double] [4x3 double]
如果我们使用celldisp
显示单元阵列的内容:
celldisp(A) A{1} =
1
2
3
4
A{2} =
1 2
1 3
1 4
2 3
2 4
3 4
A{3} =
1 2 3
1 2 4
1 3 4
2 3 4
耶!因此,您可以使用{}
从A
访问每个单元格的内容,或者使用常规括号()
访问单元格本身。
这是你的意思吗?
以上是 无法访问arrayfun的结果时UniformOutput是假 的全部内容, 来源链接: utcz.com/qa/263646.html