Matlab,从方法创建一个单元格数组

时间:2013-04-30 15:47:00

标签: matlab

我试图在句柄类中创建一个可以为单元格数组分配两个值的简单方法。第一个值是一个数字,只是一个观察数字。下一个值必须是两个字母的字符串。我尝试过以下方法:

function addemp(obj, num,ini)
        obj.empnam(num,:) = {num,ini};
    end

其中,mednum是观察数字,medini是字符串。我试过调用这个函数:

Addemp(m,1,'ES')

其中m是保留空empnam类属性的对象。

这会返回错误: 赋值具有比非单例更多的非单例rhs维度 标

所以我希望我的想法很清楚,我确实认为这是一个简单的语法错误。

非常感谢您提前

/拉塞

2 个答案:

答案 0 :(得分:1)

似乎已经解决了,但也许没有最美丽的解决方案。这就是我所做的:

function addemp(obj, num,ini)
        if isa(obj.empnam, 'cell') == 0
            obj.empnam = {};
            obj.empnam(num,1:2) = {num,ini};
        else
            obj.empnam(num,1:2) = {num,ini};
        end
end

这似乎已经做到了。我看到的问题是,该物业是空的,不知道如何采取行动。它与矩阵有关,但不与单元格数组有关。添加此逻辑会创建一个空单元格数组(如果还没有)。

感谢您的投入! /拉塞

答案 1 :(得分:0)

此错误消息表明您正在尝试将类似变量的数组存储到标量位置。你试过这个:

function addemp(obj, num,ini)
        obj.empnam(num,:) = {{num,ini}};
end

或首先是formost

function addemp(obj, num,ini)
        disp(size(obj.empnam(num,:)));
end