MATLAB 如何将数组从我的基本工作区传递到函数



我已经在几个论坛帖子上阅读,试图弄清楚这一点,但我似乎无法破解它。总结我的函数,我有 2 个数组searchDatessearchIds。现在我想做的是对其中一个元素与另一个数组的大小进行比较,这是我到目前为止拥有的代码,但我不知道如何继承searchDatessearchIds

function a = compare(userNum)
if size(searchDates{1,userNum},2) == size(searchIds{1,userNum},2)
    x = true
else x = false
end

TL;DR 我只需要知道如何从我的基本工作区传递到我的函数工作区上面的两个数组。

干杯!

您可以重写函数,以便可以直接传递数组:

function a = compare(userNum,searchDates,searchIds)
if size(searchDates{1,userNum},2) == size(searchIds{1,userNum},2)
    x = true
else x = false
end

然后在第二个和第三个参数中调用与工作区变量进行比较。如果由于某种原因需要比较只有一个参数,则可以使用上述函数 compare 和编写在工作区中创建匿名函数:

anon_compare = @(userNum) compare(userNum,searchDates,searchIds)

如果 searchDAtes 和 searchId 位于您的工作区中,您现在将拥有函数anon_compare,您可以直接将其用作anon_compare(foo)

有关匿名函数(几种 MATLAB 编程技术的一个重要方面)的更多信息,您可以阅读这篇文章。

最新更新