我需要做到以下幾點:創建虛擬變量在Scilab的
A = [1,2,3; 0,4,0; 0,5,6]
B = krone (A, A)
C = sparse (dummy (B))
誰能告訴我如何在Scilab的虛擬變量。我正在尋找一個相當於Matlab中虛擬變量的命令。
我需要做到以下幾點:創建虛擬變量在Scilab的
A = [1,2,3; 0,4,0; 0,5,6]
B = krone (A, A)
C = sparse (dummy (B))
誰能告訴我如何在Scilab的虛擬變量。我正在尋找一個相當於Matlab中虛擬變量的命令。
在Matlab中沒有內置Scilab版本的dummyvar
命令,但這裏有一個功能,它對數字數據也是這樣。使用的
function D = dummyvar(B)
m = size(B, 1)
D = zeros(m, 0)
for j = 1:size(B, 2)
E = zeros(m, max(B(:, j)))
for i = 1:m
E(i, B(i, j)) = 1
end
D = [D, E]
end
endfunction
實施例:
B = [1 2 1; 3 1 2; 1 2 2]
dummyvar(B)
輸出:
1. 0. 0. 0. 1. 1. 0.
0. 0. 1. 1. 0. 0. 1.
1. 0. 0. 0. 1. 0. 1.
該輸出是相同的在Matlab返回dummyvar
。
數如果基團是數字矢量或矩陣,在任何列中的值必須在範圍內的正整數從1到水平的用於相應可變
這是我的函數支持的唯一一種數據;它不處理分類數據。我會指出你給出的代碼示例也會在Matlab中拋出一個錯誤,因爲矩陣是數字並且包含零。
沒錯。但我認爲只有零的列不應該存在,因爲命令在第一列中考慮了兩個。請參閱Matlab示例。 ([Example])(http://www.mathworks.com/help/stats/dummyvar.html) –
Matlab中的dummyvar需要矩陣中的_all_值爲正整數,如果矩陣是數值的話。一列會導致錯誤。 –
你正在尋找一個Scilab相當於Matlab的[dummyvar](http://www.mathworks.com/help/stats/dummyvar.html)嗎? –
是的!我想要一個相當於虛擬變量Matlab到Scilab的命令。 –