サブセット値Integer
とVector{Integer}
の組み合わせを使用して、JuliaでVector{String}
をサブセット化しようとしています。私は、基本的にの3つの引数のそれぞれをベクトルまたはシングルトンのいずれかにして、"asdf"[1:3]
のサブセットを可能にする関数を記述したいと考えています。Juliaの文字列ベクトル内の要素をサブセット化するためにベクトルを使用する
これは私がこれまで試みられてきたものである:
function substring(x::Array{String}, y::Integer, z::Integer)
y = fill(y, length(x))
z = fill(z, length(x))
substring(x, y, z)
end
function substring(x::Vector{String}, y::Vector{Integer}, z::Integer)
y = fill(y, length(x))
substring(x, y, z)
end
function substring(x::Vector{String}, y::Integer, z::Vector{Integer})
z = fill(z, length(x))
substring(x, y, z)
end
function substring(x::Vector{String}, y::Vector{Integer}, z::Vector{Integer})
for i = 1:length(x)
x[i] = x[i][y[i]:min(z[i], length(x[i]))]
# If z[i] is greater than the length of x[i]
# return the end of the string
end
x
end
はそれを使用しようとすると:
v = string.('a':'z')
x = rand(v, 100) .* rand(v, 100) .* rand(v, 100)
substring(x, 1, 2)
# or
substring(x, 1, s)
私はエラーを取得する:
MethodError: no method matching substring(::Array{String,1}, ::Int64, ::Array{Int64,1})
Closest candidates are:
substring(::Array{String,N}, ::Integer, !Matched::Integer) at untitled-e3b9271a972031e628a35deeeb23c4a8:2
substring(::Array{String,1}, ::Integer, !Matched::Array{Integer,1}) at untitled-e3b9271a972031e628a35deeeb23c4a8:13
substring(::Array{String,N}, ::Integer, !Matched::Array{Integer,N}) at untitled-e3b9271a972031e628a35deeeb23c4a8:13
...
in include_string(::String, ::String, ::Int64) at eval.jl:28
in include_string(::Module, ::String, ::String, ::Int64, ::Vararg{Int64,N}) at eval.jl:32
in (::Atom.##53#56{String,Int64,String})() at eval.jl:50
in withpath(::Atom.##53#56{String,Int64,String}, ::Void) at utils.jl:30
in withpath(::Function, ::String) at eval.jl:38
in macro expansion at eval.jl:49 [inlined]
in (::Atom.##52#55{Dict{String,Any}})() at task.jl:60
私は別があることがわかりpost addressing同様のエラーVector{String}
のエラー。私の投稿はまた、Vector{Integer}
に関連するエラーへの応答を求めています。抽象的な型の実装が斬新で難しいと感じる私のような人にとっては、その応答が役立つかもしれないと私は信じている。
[Vector {AbstractString}関数のパラメータの重複がjuliaのVector {String}入力を受け付けません](http://stackoverflow.com/questions/21465838/vectorabstractstring-function-parameter-wont-accept-vectorstring- input-in-j) –
これはパラメトリックな不変量の例です。同様の問題については、http://stackoverflow.com/questions/21465838/vectorabstractstring-function-parameter-wont-accept-vectorstring-input-in-jを参照してください。ここであなたの問題は 'Vector {Integer}'にあります。 –
私の質問はタイプ管理の問題として解釈されていますが、私は本当にタイトルが言っていることをする機能を探しています。私がもっと慣れ親しんだRでは、答えは簡単です、 'substr(x、1,2)'。私は自分自身で問題を解決するために妥当な努力をしたことを示すために上記のコードを含めました....そして、あまりにも厄介でなければ、私は本当に答えに感謝します。 – fsmart