Fortran数据声明,MATLAB翻译
我必须在MATLAB中翻译此Fortran语句(变量初始化): 其中Fortran数据声明,MATLAB翻译,matlab,fortran,Matlab,Fortran,我必须在MATLAB中翻译此Fortran语句(变量初始化): 其中k声明为 character*2 k(31,12) 我已经读到,*等于逗号,也就是说,k将是两个元素的数组,350和一个空单元格 我应该用MATLAB写什么?这个k=['350',''?在数据语句中*与不同,:,是分隔符,但*是重复计数说明符 问题的例子 character*2 k(31,12) data k/350*' '/ 初始化值等于700个空格,k是长度为2个字符的秩2数组(形状为[31,12]) 理想情况下,k的
k
声明为
character*2 k(31,12)
我已经读到,*
等于逗号,也就是说,k
将是两个元素的数组,350和一个空单元格
我应该用MATLAB写什么?这个
k=['350',''代码>?在数据
语句中*
与不同,
:,
是分隔符,但*
是重复计数说明符
问题的例子
character*2 k(31,12)
data k/350*' '/
初始化值等于700个空格,k
是长度为2个字符的秩2数组(形状为[31,12]
)
理想情况下,k
的大小与初始化值表达式的大小相同,但有一个区别:744和700。让我们假设意图是数组k
的每个元素都有值'
(即,所有空格)
至于在MATLAB中实现这一点的最佳方法,我不是专家。但如果有必要,我会添加一种方法(或者其他人可以)。希望Fortan代码(打算做什么)的解释足够了。在数据语句中*
与不同,
:,
是一个分隔符,但*
是一个重复计数说明符
问题的例子
character*2 k(31,12)
data k/350*' '/
初始化值等于700个空格,k
是长度为2个字符的秩2数组(形状为[31,12]
)
理想情况下,k
的大小与初始化值表达式的大小相同,但有一个区别:744和700。让我们假设意图是数组k
的每个元素都有值'
(即,所有空格)
至于在MATLAB中实现这一点的最佳方法,我不是专家。但如果有必要,我会添加一种方法(或者其他人可以)。希望Fortan代码(打算做什么)的解释足够了。如果您想输入350
作为一个数字,那么k={350,[]}
。如果要将350
作为字符串输入,则k={350',[]}
声明为“字符*2k(31,12)”。如果要将350
作为数字输入,则k={350,[]}
。如果要以字符串形式输入350
,则k={'350',[]}
将声明为“character*2k(31,12)”。如果我得到它,则将k声明为空矩阵31*12。我认为代码中有一个错误,350 sholud是372,矩阵的每个值都是空的,我认为在matlab中最好的方法是k=0(31,12);只有当我必须用增量循环“填充”空空间时,才能这样做:只有在这种情况下,预分配内存才有用。372*”
才是正确的。我相信,如果MATLAB中的字符变量初始化为空,您只需将字符串声明为具有适当大小和长度的数组。在MATLAB中,初始化k的一个好方法是将k作为单元格数组k=repmat({'},31,12)
存在依赖于长度的fortran语句(在本例中为2)因此,将matlab中的单元初始化为实际空间非常有用。文件交换中的f2matlab可以帮助将fortran源代码转换为matlab/octave源代码。如果我得到它,k被声明为空矩阵31*12。我认为代码中有一个错误,350 sholud是372,矩阵的每个值都是空的,我认为在matlab中最好的方法是k=0(31,12);只有当我必须用增量循环“填充”空空间时,才能这样做:只有在这种情况下,预分配内存才有用。372*”
才是正确的。我相信,如果MATLAB中的字符变量初始化为空,您只需将字符串声明为具有适当大小和长度的数组。在MATLAB中,初始化k的一个好方法是将k作为单元格数组k=repmat({'},31,12)
存在依赖于长度的fortran语句(在本例中为2)因此,将matlab中的单元初始化为实际空间非常有用。f2matlab从文件交换可以帮助将fortran源代码转换为matlab/倍频程源代码。