小编use*_*800的帖子

Matlab类设置方法调用意外

Matlab指定何时调用[a] Set Method

我遇到了奇怪的结果,所以我对以下课程进行了一系列测试:

% @cScenInsts/cScenInsts.m
%-------------------------

classdef cScenInsts < matlab.mixin.Copyable

properties
   TwinYrs = 5 % Default value
end % properties

methods

   function o = cScenInsts( TwinYrs_in ) % Constructor
      if exist('TwinYrs_in') && ~isempty( TwinYrs_in )
         o.TwinYrs = TwinYrs_in ;
      else
         o.TwinYrs = o.TwinYrs ;
      end % if
   end % function cScenInsts()

   function o = set.TwinYrs(o,TwinYrs_in)
      o.TwinYrs = TwinYrs_in;
      fprintf( '%s: Property TwinYrs = %g\n', mfilename, o.TwinYrs );
   end % function set.TwinYrs

end % methods

end % classdef
Run Code Online (Sandbox Code Playgroud)

else …

oop matlab class

7
推荐指数
2
解决办法
97
查看次数

如何解释 Python 输出 dtype='&lt;U32'?

我正在参加一门在线课程,以下内容据称表明“NumPy 数组:仅包含一种类型”:

In [19]: np.array([1.0, "is", True])
Out[19]:
array(['1.0', 'is', 'True'],
dtype='<U32')
Run Code Online (Sandbox Code Playgroud)

起初,我以为输出是一种错误信息,但这并没有得到网络搜索的证实。事实上,我还没有遇到过解释……谁能解释一下如何解释输出?

后记:在查看答案、dtype页面numpy.array()页面后,似乎dtype='<U32'更准确地描述为dtype('<U32')。这样对吗?在我看来是这样,但我是一个新手,甚至numpy.array()页面dtype参数分配了一个字符串,而不是一个实际的dtype对象。

另外,'<U32'当所有元素都是短得多的字符串时,为什么要指定 32 个字符的字符串?

python numpy

6
推荐指数
2
解决办法
9852
查看次数

为什么有些Matlab类方法需要"显然"不必要的输出参数

在将我的项目代码发展了几个月之后,我终于需要定义一个新类.我不得不通过我之前的类定义作为约定的复习,我注意到所有构造函数和属性setter都有一个输出参数,即使没有赋值,例如:

function o = myConstructor( arg1, arg2, ... )
function o = set.SomeProperty( o, arg1 )
Run Code Online (Sandbox Code Playgroud)

我一直在查看文档一个多小时而没有找到解释.看起来它不取决于函数是在类定义文件中定义还是在其自己的单独m文件中定义.

有人可以解释一下吗?

oop methods matlab

4
推荐指数
1
解决办法
394
查看次数

PIL的Image.rotate()裁剪图像

我正在尝试 Python 图像库,但是 `Image.rotate() 似乎裁剪了图像:

from PIL import Image 
fn='screen.png'
im = Image.open(fn)
im = im.rotate(-90)
im = im.rotate(90)
im.show()
im.save('cropped.png')
Run Code Online (Sandbox Code Playgroud)

原始图像screen.png是:

在此输入图像描述

裁剪后的图像cropped.png是:

在此输入图像描述

裁剪是由第一次旋转引起的,并保留在第二次旋转中。

尽管多年来我一直在努力熟悉 Python,但我对 Python 仍然很陌生。这是我在 PIL 上做错了什么还是一个错误?

我的Python版本是:

Python 3.8.8 (default, Mar  4 2021, 21:24:42) 
[GCC 10.2.0] on cygwin
Run Code Online (Sandbox Code Playgroud)

python-imaging-library python-3.x

4
推荐指数
1
解决办法
3217
查看次数

保存Matlab工作区而不保存或删除数字

save命令的文档说如果您不想阻止*.mat文件,则应删除数字.我定期save给一个*.mat文件,并在发布后重新使用我的数字clf.我宁愿不必将其删除只是save一个*.mat文件,然后打开一个新的数字.有没有办法做到这一点?

matlab matlab-figure

3
推荐指数
1
解决办法
2031
查看次数

删除所有变量的功能

删除除函数之外的所有变量,我得到了删除所有变量而不删除函数的命令.我不想一直输入它,所以我试着把它变成〜/ .Rprofile中定义的函数.我是R的新手,但我浏览了环境框架方案,对它有一种不稳定的理解.以下尝试似乎没有擦除主环境中定义的时间序列对象(当我第一次启动R时命令行提示符):

# In ~/.Rprofile
clVar <- function()
{
    rm(
        list=setdiff( ls(all.names=TRUE), lsf.str(all.names=TRUE)),
        envir=parent.frame()
    )
}
Run Code Online (Sandbox Code Playgroud)

以下代码显示它不起作用:

( x<-ts( 1:100 ,frequency=12 ) )
clVar()
ls()
Run Code Online (Sandbox Code Playgroud)

感谢您在修复环境框架方面提供的任何帮助.

r

2
推荐指数
1
解决办法
819
查看次数

将Matlab结构数组转换为单元数组

可以将Matlab结构数组转换为单元数组而无需遍历数组吗?

我希望struct数组中的每个结构都成为单元数组中的一个单元格.命令struct2cell似乎没有这样做,因为它将结构中的每个字段分成一个单独的单元格.

这已发布到:

matlab cell-array

2
推荐指数
1
解决办法
2826
查看次数

以编程方式启用选项"退出Matlab之前确认"

我在Variable Explorer中仔细设置了一堆子窗口和选项卡.选项卡以深层嵌套的数据结构显示数据,因此需要进行相当多的手动浏览.

然后我偶然关闭了Matlab.哎哟.

为了防止将来出现这种情况,我找到了退出前确认选项.我想以编程方式设置它,以便它可以放入我的startup.m文件中.这样,无论我使用什么计算机,只要我有我的startup.m,我就不会成为错误关闭Matlab的牺牲品.

是否可以使用Matlab语句启用此选项?

matlab

2
推荐指数
1
解决办法
85
查看次数

Matlab`unstack`:安全地假设新列的排序?

根据文档,Matlab unstack可以使用此表:

S=12×3 table
Storm    Town    Snowfall
_____    ____    ________

  3      'T1'        0   
  3      'T3'        3   
  1      'T1'        5   
  3      'T2'        5   
  1      'T2'        9   
  1      'T3'       10   
  4      'T2'       12   
  2      'T1'       13   
  4      'T3'       15   
  2      'T3'       16   
  4      'T1'       17   
  2      'T2'       21   
Run Code Online (Sandbox Code Playgroud)

...并将其转换为:

U = unstack(S,'Snowfall','Town')

U=4×4 table
Storm    T1    T2    T3
_____    __    __    __

  3       0     5     3
  1       5     9    10
  4      17    12    15
  2      13    21    16
Run Code Online (Sandbox Code Playgroud)

假设新列按字母顺序生成似乎是合理的.假设如果一个人手动操作数据,这将是正常的,但如果不能100%确定列的排序,则是自动数据处理的交易破坏者.例如,如果 …

matlab pivot

2
推荐指数
1
解决办法
125
查看次数