Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fortran数据声明,MATLAB翻译_Matlab_Fortran - Fatal编程技术网

Fortran数据声明,MATLAB翻译

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的

我必须在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
的大小与初始化值表达式的大小相同,但有一个区别: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/倍频程源代码。