Calling Matlab function from python: “initializer must be a rectangular nested sequence”

Calling Matlab function from python: “initializer must be a rectangular nested sequence”

I am writing a python script from which I hope to call the Matlab anovan function. I have attempted a basic test of this feature on file test.txt.

This file is imported as array data. In matlab, the anovan function would be called as follows:

anovan(data(:,1),{data(:,2),data(:,3)})

In python, I have attempted to call the function like this:

import matlab.engine eng = matlab.engine.start_matlab() data = np.genfromtxt('test.txt') eng.anovan(matlab.double(data[:,0]),matlab.int8(data[:,1:2]))

Unfortunately, this gives the following error:

ValueError: initializer must be a rectangular nested sequence

I can see that there is some issue in passing the last two array columns to the function, but am unsure of the solution. Any suggestions would be appreciated.


 

I have now worked this out. The issue was in the format of the data passed to the function.

#convert grouping columns to integer lists list1 = data[:,1].tolist() for i in range(0,len(list1)): list1[i] = int(list1[i]) list2 = data[:,2].tolist() for i in range(0,len(list2)): list2[i] = int(list2[i]) #The following command now works eng.anovan(matlab.double(data[:,0].tolist()),[matlab.int8(list1),matlab.int8(list2)])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119595.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月21日 下午3:00
下一篇 2021年11月21日 下午4:00


相关推荐

  • 3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]

    3_1符合python语言变量_中国大学MOOC: 以下选项中不符合Python语言变量命名规则的是以下选项中不符合Python语言变量命名规则的是 答案:3_1…[通俗易懂]劳心者治人,劳力者治於人”,孟子之,其所以驳()也。俟:农人家当睫状肌缩,悬韧带弛时,晶状体者也:前面曲率增,折光力强人生直为人观之义,是指()耳:生人之用于世与人所有之用、意义量人生直之格宜为()耳:劳、贡献宜从四方来得新时两步行要之位置。中国大学MOOC口被虫伤之者其主何护问答:焦思、惧中国大学MOOC口以下于北方经制论不正者是也:邑化率增速高中国大学MOOC口补虚药为补虚扶弱,正体气血阴阳虚…

    2022年6月10日
    43
  • AMD看準AI龍蝦熱潮發表代理電腦專文,並為具有強大AI性能的Ryzen AI Max平台提供OpenClaw最佳配置指南

    AMD看準AI龍蝦熱潮發表代理電腦專文,並為具有強大AI性能的Ryzen AI Max平台提供OpenClaw最佳配置指南

    2026年3月17日
    2
  • EJB详解

    EJB详解Chapter01 企业级开发背景知识一 什么是企业级程序 EnterpriseAp nbsp 具有以下特点的程序 nbsp 1 围绕商业目的 nbsp 2 分布分层的程序架构 二 企业级应用的架构发展历史 Host Terminal 主机 终端 终端不具备处理能力 数据由主机处理 终端为哑终端 可接受命令 不处理命令优点

    2026年3月18日
    1
  • nonlocal怎么用_result的用法

    nonlocal怎么用_result的用法这个nonlocal是py3.x中才有的关键词第一种情况,不使用nonlocal的情况:#-*-encoding:utf-8-*-importsysreload(sys)sys.setdefaultencoding(‘utf-8’)deftest():x=1print(“test=”+str(x))#####################

    2025年9月20日
    7
  • 万能乘法速算法大全_小学数学加减乘除【速算法】都在这里! 寒假让孩子练一练…

    万能乘法速算法大全_小学数学加减乘除【速算法】都在这里! 寒假让孩子练一练…★需要电子版资料可直接拉至文末查看领取方式哈!小果老师说:很多小朋友的寒假生活已经开启啦!寒假的确可以好好玩一玩,但某种程度上该学习还是的学习一些的!因此,今天小果老师要给大家分享的内容是数学速算法,这些内容掌握以后就几乎不用担心那些简便运算没头绪啦!赶紧来看看然后为孩子收藏起来吧!01加法的神奇速算法一、加大减差法口诀前面加数加上后面加数的整数,减去后面加数与整数的差等于和。例题1376+98…

    2022年6月5日
    37
  • handlerInvocation的invoke方法

    handlerInvocation的invoke方法java.lang.reflect.Proxy类的newProxyInstance(),是用于创建动态代理类和实例的静态方法.返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序。java.lang.reflect.InvocationHandler接口中的invoke(),在代理实例上处理方法调用并返回结果。当与方法关联的代理实例上调用方法时,将在调用处理程序上调用此方法…

    2022年5月12日
    51

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号