计算对象在matlab中出现在数组中的次数

时间:2016-08-27 14:42:33

标签: matlab class

我有两个课程,Good和Market。每个班级都有自己的特色。它们如下

var result = [6, 7, 5, 0, 0, 0, 0, 3, 4, 0, 0, 1]
    .map((i) => i === 0 ? 1 : 0)
    .reduce((prev, i) => {
      if (prev === 1) {
          return 1;
      }
      if(i === 0) {
          return -3;
      }
      return prev + (i === 1);
    }, -3);

console.log(result)

classdef market< handle
properties
    name
    goods=good.empty
    budget=0
end
methods
    function obj=market(val1)
        obj.name=val1;
    end
    function buy(obj, item)
        obj.goods(end+1)=item;
    end
    function sell(obj,item,quantity)
        obj.goods=obj.goods(obj.goods~=item);
    end
    function list=l(obj)
        list={obj.goods.name;obj.goods.price1;obj.goods.price2};
    end
    end

每次我称之为购买方法时,我的商品都会在市场上添加新商品。例如,如果我有2件商品,good1 ang good2,9次购买后,我有以下结果

第1至6栏

classdef good
properties 
    name
    price1
    price2
    quantity
end
methods 
    function obj=good(val1,val2,val3)
    obj.name=val1;
    obj.price1=val2;
    obj.price2=val3;
    end
end
end

第7至9栏

'Cheese'    'Eggs'    'Cheese'    'Cheese'    'Cheese'    'Cheese'
[    10]    [  20]    [    10]    [    10]    [    10]    [    10]
[    20]    [  30]    [    20]    [    20]    [    20]    [    20]

奶酪与good1相关。鸡蛋对应于good2。

  1. 我怎样才能总结所有的good1和所有的good2?函数numel(good1)返回ans = 1,这是错误的。
  2. 我的商品中有物业数量。总结结果后,我如何才能获得另一批货物及其相应的数量?

1 个答案:

答案 0 :(得分:1)

访问对象数组的字段的结果是comma-separated list。这就是为什么$( document ).ready(function() { $('#your-id').bind('keyup','keydown', function(event) { var inputLength = event.target.value.length; if(inputLength === 2 || inputLength === 5){ var thisVal = event.target.value; thisVal += '/'; $(event.target).val(thisVal); } }) }); 不能像你想象的那样起作用的原因。要接收数组,您应该将列表括在大括号或括号中:

numel

现在names={m.goods.name} prices1=[m.goods.price1] 是单元格数组,其中包含names的所有字段namem包含字段prices1。为了找到包含price1的元素,我们现在可以使用Eggs

strcmp

e= strcmp(names,'Eggs') 字段的数量是Eggs中的字段数。让我们算一下:

e

现在我们可以总结一下我们找到的元素的eggs_num= sum(e) 字段:

price1