2017-07-19 75 views
-2
a=magic(5) 
k=a,3 

當我打印k時,它只是顯示aOctave中的變量=(矩陣,標量)是什麼意思?

m=size(a,3) 
n=size(a,6) 

當我打印mn,他們打印不同的值。

任何人都請解釋一下這個功能是什麼?

+0

它給出語法錯誤! – OmG

+0

@OmG它沒有。這是有效的MATLAB語法,儘管完全沒用......除非你是代碼打高爾夫! il_raffa的答案也保存在MATLAB中。 – rayryeng

+0

@rayryeng問題的標題是Octave。並且此代碼在Octave中有語法錯誤。 – OmG

回答

3

在八度4.2.1

k=a,3 

矩陣a分配給變量k,然後,作爲一個第二指令,對打印CommandWindow值3

使用,(逗號)是爲了在同一行上有兩條指令。

的alterntive可以與具有抑制對分配k=a

隨着respec的CommandWindow輸出到

m=size(a,3) 
n=size(a,6) 

第二paramenter n中的呼叫的效果;被替換,size指定要爲其知道大小的矩陣(第一個參數)的dimension

a是大小爲(5 x 5)的兩個「維」矩陣,而指令size(a,3)查找a的第三維的大小。

以類似的方式,size(a,6)尋找a的第六維的大小。在這些情況下,a被視爲(5 x 5 x 1)(5 x 5 x 1 x 1 x 1 x 1)

的返回值,是1

這是CommandWondow輸出:

>> a=magic(5) 

a = 

    17 24 1 8 15 
    23 5 7 14 16 
    4 6 13 20 22 
    10 12 19 21 3 
    11 18 25 2 9 

>> k=a,3 

k = 

    17 24 1 8 15 
    23 5 7 14 16 
    4 6 13 20 22 
    10 12 19 21 3 
    11 18 25 2 9 

ans = 3 

>> m=size(a,3) 

m = 1 
>> n=size(a,6) 

n = 1 

希望這有助於

Qapla'

2

在matlab/octave中,有三種方法來終止ex壓力(例如, 1+2):

  • 用分號;
  • 用逗號,
  • 以新行使用時(即,按壓輸入)

第一個(即,分號),評估表達式,但會抑制其輸出。另外兩個(即逗號和換行符),都評估語句顯示其結果

爲什麼同時使用逗號和換行符?因爲用逗號可以在同一行上評估多個表達式(並且可以顯示它們的結果)。

注意:鑑於大多數人以不同的方式寫出他們的表達式,逗號往往不會被使用太多,所以它不太瞭解。

例子:

octave:1> 1+2, 3+4 
ans = 3 
ans = 7 

octave:2> 1+2; 3+4; 

octave:3> 1+2; 3+4 
ans = 7 

octave:4> 1+2, 3+4; 
ans = 3 

octave:5> for i = 1:3; i; end % output in each iteration is suppressed 

octave:6> for i = 1:3; i, end % whereas with a comma, output is not suppressed 
i = 1 
i = 2 
i = 3 

因此您的語句:

a = magic(5) 
k = a, 3 

基本上等同於

a = magic(5)  % newline used: display value of a after assignment 
k = a,   % comma used, assign value of a to k, then display k 
3     % newline used: displays the value '3' after pressing enter 

此外size功能不會做你認爲它的功能。 size(a,3)返回3維度中的數組a的大小。

相關問題